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(
LPCWSTR lpFileName, //文件/文件夹名称
DWORD nBufferLength, //缓存大小
LPWSTRlpBuffer, //缓存指针
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 = { 0 };
GetFullPathName(wfd.cFileName, MAX_PATH, pullPath, 0);
TreeView_LoadDir(hTree, wfd.cFileName, hItem);
SetCurrentDirectory(L"..");
}
else {
//获取文件的完全路径名称
TCHAR pullPath = { 0 };
GetFullPathName(wfd.cFileName,MAX_PATH, pullPath, 0);
hItem = TreeView_InsertItemEx(hTree, wfd.cFileName, hParent, 0, 0);
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]