【WM】如何递归创建目录
2010-04-26 20:01
447 查看
在Windows Mobile上调用CreateDirectory()函数只能创建路径中的最后的目录,不能递规创建目录。如果任意父目录或中间目录不存在,CreateDirectory()函数会返回FALSE,调用GetLastError()函数返回错误号ERROR_PATH_NOT_FOUND。而我们在工作中经常需要递归创建目录,因此,笔者在这里介绍一个能够递归创建目录的Win32 API函数CreateDirectoryPath()。
CreateDirectoryPath()函数的原型声明出现在头文件miscsvcs.h中,使用该函数需要链接导入库ossvcs.lib。
HRESULT CreateDirectoryPath(LPCWSTR _pszPath);
根据习惯,笔者在这里也给出了该函数的实现:
CreateDirectoryPath()函数的原型声明出现在头文件miscsvcs.h中,使用该函数需要链接导入库ossvcs.lib。
HRESULT CreateDirectoryPath(LPCWSTR _pszPath);
根据习惯,笔者在这里也给出了该函数的实现:
HRESULT CreateDirectoryPath(LPCWSTR _pszPath) { TCHAR szOrig[MAX_PATH]; if (!_pszPath || !*_pszPath) { return E_INVALIDARG; } DWORD dwAttrib = GetFileAttributes(_pszPath); if (dwAttrib != -1 && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY)) { return S_OK; } StringCchCopy(szOrig, MAX_PATH, _pszPath); LPTSTR pszPath = szOrig; if (*szOrig == TEXT('//')) { pszPath = szOrig + 1; } while (*pszPath) { if (*pszPath == TEXT('//')) { *pszPath = NULL; CreateDirectory(szOrig, NULL); *pszPath = TEXT('//'); } pszPath ++; } CreateDirectory(szOrig, NULL); dwAttrib = GetFileAttributes(_pszPath); return (dwAttrib != -1 && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY)); }
相关文章推荐
- Linux mkdir 如何递归创建目录?
- 递归创建目录
- 如何在 Linux 中创建一个共享目录
- 如何创建多层目录
- FileObserver递归监听目录(解决无法监听目录的创建、删除问题)
- 递归创建目录
- C++ 如何获取目录下面的文件/文件的创建时间
- php递归创建目录的方法
- JAVA 如何创建/删除/修改/复制目录及文件
- 如何在指定目录下创建文件夹?
- linux c mkdir创建递归目录
- 递归创建目录
- PHP按照 年、月、日创建递归目录
- JAVA 如何创建/删除/修改/复制目录及文件
- 【WM】如何判断两个窗口是否由同一进程创建
- nodejs递归创建多层目录
- grep如何递归目录并在指定类型文件中查找
- PHP判断文件夹是否存在和创建文件夹的方法(递归创建多级目录)
- php上传文件,创建递归目录的实例代码
- 递归之级联目录的创建与删除