windows客户端开发--文件以及文件夹相关操作(windows api)
来源:互联网 发布:数据库保护问题包括 编辑:程序博客网 时间:2024/04/30 06:12
让我掉下眼泪的 不止昨夜的酒 让我依依不舍的 不止你的温柔 雨路还要走多久 你攥着我的手 让我感到为难的 是挣扎的自由 分别总是在九月 回忆是思念的愁 深秋嫩绿的垂柳 亲吻着我额头 在那座阴雨的小城里 我从未忘记你 成都 带不走的 只有你 --------------------------------------------------------赵雷~《成都》
做客户端开发,避免不了与文件以及文件夹打交道。
今天就与大家分享一下,windows平台上的一些关于文件以及文件夹的操作:
1 重命名
不再赘述,看看之前的博客吧:
《C++中修改文件夹名以及文件名》
2 判断是文件还是文件夹是否存在
// 判断文件是否存在BOOL IsFileExist(const CString& csFile){ DWORD dwAttrib = GetFileAttributes(csFile); return INVALID_FILE_ATTRIBUTES != dwAttrib && 0 == (dwAttrib & FILE_ATTRIBUTE_DIRECTORY);}// 判断文件夹是否存在BOOL IsDirExist(const CString & csDir){ DWORD dwAttrib = GetFileAttributes(csDir); return INVALID_FILE_ATTRIBUTES != dwAttrib && 0 == (dwAttrib & FILE_ATTRIBUTE_DIRECTORY);}// 判断文件或文件夹是否存在BOOL IsPathExist(const CString & csPath){ DWORD dwAttrib = GetFileAttributes(csPath); return INVALID_FILE_ATTRIBUTES != dwAttrib;}// 变体BOOL IsPathExist(const CString & csPath){ WIN32_FILE_ATTRIBUTE_DATA attrs = { 0 }; return 0 != GetFileAttributesEx(csPath, GetFileExInfoStandard, &attrs);}
3删除文件
if(!_access(source,0)){ SetFileAttributes(source,0); if(DeleteFile(source))//删除成功 { cout<<source<<" 已成功删除."<<endl; } else//无法删除:文件只读或无权限执行删除 { cout<<source<<" 无法删除:文件为只读属性或无删除权限."<<endl; } } else//文件不存在 { cout<<source<<" 不存在,无法删除."<<endl;}
4删除文件夹下所有的文件
BOOL CDlgData::DeleteDirectory(char *sDirName){ CFileFind tempFind; char sTempFileFind[200] ; sprintf(sTempFileFind,"%s\\*.*",sDirName); BOOL IsFinded = tempFind.FindFile(sTempFileFind); while (IsFinded) { IsFinded = tempFind.FindNextFile(); if (!tempFind.IsDots()) { char sFoundFileName[200]; strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200)); if (tempFind.IsDirectory()) { char sTempDir[200]; sprintf(sTempDir,"%s\\%s",sDirName,sFoundFileName); DeleteDirectory(sTempDir); } else { char sTempFileName[200]; sprintf(sTempFileName,"%s\\%s",sDirName,sFoundFileName); DeleteFile(sTempFileName); } } } tempFind.Close(); if(!RemoveDirectory(sDirName)) { return FALSE; } return TRUE; }
5 拷贝文件
bool CopyFile(const std::wstring &from_path, const std::wstring &to_path){ if (from_path.size() >= MAX_PATH || to_path.size() >= MAX_PATH) { return false; } return (::CopyFileW(from_path.c_str(), to_path.c_str(), false) != 0);}
6 获取文件大小
int64_t GetFileSize(const PathString &filepath){ WIN32_FIND_DATAW file_data; HANDLE file = FindFirstFileW(filepath.c_str(), &file_data); if (file == INVALID_HANDLE_VALUE) return -1; LARGE_INTEGER li = { file_data.nFileSizeLow, file_data.nFileSizeHigh }; FindClose(file); return li.QuadPart;}
7 获取文件夹下所有文件
void GetFilesInDirectory(std::vector<string> &out, const string &directory){ HANDLE dir; WIN32_FIND_DATA file_data; if ((dir = FindFirstFile((directory + "/*").c_str(), &file_data)) == INVALID_HANDLE_VALUE) return; /* No files found */ do { const string file_name = file_data.cFileName; const string full_file_name = directory + "/" + file_name; const bool is_directory = (file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; if (file_name[0] == '.') continue; if (is_directory) continue; out.push_back(full_file_name); } while (FindNextFile(dir, &file_data)); FindClose(dir);}
4 0
- windows客户端开发--文件以及文件夹相关操作(windows api)
- windows客户端开发--文件以及文件夹相关操作(windows api)
- Windows,Linux文件夹相关操作
- Windows文件操作API
- Windows API:文件操作
- 《Windows API》目录相关操作
- windows客户端开发--windows api大全
- windows客户端开发--windows api大全
- windows客户端开发--windows api大全
- Windows API实现文件操作
- Windows API实现文件操作
- iOS 文件以及文件夹相关操作
- Windows消息机制以及相关API
- windows下删除超长文件以及文件夹
- windows客户端开发--判断一个文件夹中是否存在文件夹
- Android 初始文件夹创建 以及 文件&文件夹相关操作
- [windows phone开发]文件操作
- Windows API 函数学习(6)---文件操作
- git tag — 标签相关操作
- ActiveMQ学习总结(10)——ActiveMQ采用Spring注解方式发送和监听
- MySQl使用基础命令1
- 孢子小元的体重为a,在行走过程中会遇到b1,b2,b3...bn个孢子,当bi(0<i<n)小于等于小元此时的体重c时,他将吞没bi,则是他的体重增加bi, 当bi大于小元此时的体重c时,小元的体重将
- Spring单例模式,线程相关,有没有同步机制?问题详解
- windows客户端开发--文件以及文件夹相关操作(windows api)
- 微信朋友圈实现思路
- Mysql分页查询高效方案
- 机器学习常用矩阵求导公式
- itpt_TCPL 第五章:指针和数组 - 第八章:UNIX系统接口
- 安装gcc4.9.3后编译时出现unrecognized command line option “-std=c++11”
- Android String文本去收尾和中间空格
- 移动前端自适应解决方案和比较
- KITTI 评测中 MSCNN 检测代码C/C++实现(原版matlib)