常用操作文件目录的函数
1. CreateDirectory 创建文件夹
原型:- BOOL CreateDirectory(
- LPCTSTR lpPathName,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes
- );
复制代码 参数说明:
lpPathName 要创建的文件夹名称
lpSecurityAttributes 忽略为NULL
返回:
成功返回非零,失败返回零
实例:- 实例:
- CString str="D:\\一级文件夹";
- CreteDirectory(str,NULL);
- str+="\\二级文件夹";
- CreateDirectory(str,NULL);
复制代码
2.RemoveDirectory 删除文件夹
原型:- BOOL RemoveDirectory(
- LPCTSTR lpPathName //要删除的文件夹名称
- );
复制代码 返回:
成功返回非零,失败返回零
3. PathIsDirectory 判断文件夹是否存在
原型:- BOOL PathIsDirectory(
- LPCTSTR lpPathName //文件夹名称
- );
复制代码 这个api要包含头文件(shlwapi.h)和库文件(shlwapi.lib)
4. 自己通过文件属性来判断文件夹是否存在- bool IsExistingDirectroy(const wchar_t* path)
- {
- DWORD fa=0;
- ::SetLastError(ERROR_SUCCESS);
- //获取文件属性
- fa=::GetFileAttributesW(path);
- if(fa==INVALID_FILE_ATTRIBUTES)
- {
- //无法获取文件属性,可能是不存在
- //检查错误代码
- DWORD error=::GetLastError();
- return error != ERROR_PATH_NOT_FOUND &&
- error!=ERROR_FILE_NOT_FOUND;
- }
- return (fa & FILE_ATTRIBUTES_DIRECTORY) !=0;
- }
复制代码
5. GetFullPathName 获得文件或文件夹的全路径
原型:- DWORD GetFullPathNameW(
- [in] LPCWSTR lpFileName, //文件/文件夹名称
- [in] DWORD nBufferLength, //缓存大小
- [out] LPWSTR lpBuffer, //缓存指针
- [out] LPWSTR *lpFilePart //NULL
- );
- 返回值:
- 成功返回字符串长度,
- 失败返回0;
复制代码
实例:- 实例:
- WIN32_FIND_DATA wfd;
- HANDLE hFile = FindFirstFile(TEXT("*.*"), &wfd);
- if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- { //是文件夹
- hItem = TreeView_InsertItemEx(hTree, wfd.cFileName, hParent, 1, 2);
-
- //获取文件夹的完全路径名称
- TCHAR pullPath[MAX_PATH] = { 0 };
- GetFullPathName(wfd.cFileName, MAX_PATH, pullPath, 0);
- TreeView_LoadDir(hTree, wfd.cFileName, hItem);
- SetCurrentDirectory(L"..");
- }
- else {
- //获取文件的完全路径名称
- TCHAR pullPath[MAX_PATH] = { 0 };
- GetFullPathName(wfd.cFileName,MAX_PATH, pullPath, 0);
- hItem = TreeView_InsertItemEx(hTree, wfd.cFileName, hParent, 0, 0);
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |