windows客户端开发--文件以及文件夹相关操作(windows api)
2016-11-18 17:54
363 查看
1 重命名
不再赘述,看看之前的博客吧:
《C++中修改文件夹名以及文件名》
2 判断是文件还是文件夹是否存在
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
3删除文件
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
4删除文件夹下所有的文件
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
5 拷贝文件
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
6 获取文件大小
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
7 获取文件夹下所有文件
不再赘述,看看之前的博客吧:
《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); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
3删除文件
if(!_access(source,0)) { SetFileAttributes(source,0); if(DeleteFile(source))//删除成功 { cout<<source<<" 已成功删除."<<endl; } else//无法删除:文件只读或无权限执行删除 { cout<<source<<" 无法删除:文件为只读属性或无删除权限."<<endl; } } else//文件不存在 { cout<<source<<" 不存在,无法删除."<<endl; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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); }1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
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; }1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
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); }
相关文章推荐
- windows客户端开发--文件以及文件夹相关操作(windows api)
- windows客户端开发--文件以及文件夹相关操作(windows api)
- 如何审计访问共享文件的客户端电脑以及清除在Windows下访问共享文件夹时的登录信息
- Android 初始文件夹创建 以及 文件&文件夹相关操作
- dirent--文件以及文件夹相关操作(跨平台)
- iOS 文件以及文件夹相关操作
- Windows 8实用窍门系列:13.windows 8的文件.文件夹管理---2.文件以及文件夹操作
- EditPlus最新汉化绿色版的下载、破解,以及开发java文件时的一些相关设置操作视频
- Go实战--golang中文件以及文件夹路径相关操作
- Windows 8技巧:windows 8文件 文件夹管理[文件以及文件夹操作]
- dirent--文件以及文件夹相关操作(跨平台)
- Windows驱动编程 文件读写 以及注册表操作
- Windows 8 应用商店应用开发 之 用户库操作(2)用户库文件夹操作
- JDBC开发数据库中大文本以及多媒体文件的操作
- 文件及文件夹相关操作
- C#对Windows文件/文件夹/目录的一些操作总结
- Linux系统下的文件和文件夹相关操作(创建/删除/修改权限)
- js操作客户端:把某一个文件夹下面的所有的文件copy到目标文件夹
- Windows 8开发 WinRT 对ZIP文件解压缩及文件夹的ZIP压缩
- windows下面删除一个文件以及子文件夹的.svn文件夹