win32 API 文件夹操作函数整理

打印 上一主题 下一主题

主题 937|帖子 937|积分 2811

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表