win32 API 文件夹操作函数整理
常用操作文件目录的函数
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); }
签名:GreenLeaf1976