C++ 删除文件夹
来源:互联网 发布:mysql utf8 utf8mb4 编辑:程序博客网 时间:2024/06/18 09:58
这个方法好像是参考Stack Overflow上面的,具体的那篇文章我也忘了!若有看到的可提供下链接,谢谢!
不多说,直接上代码
int DeleteDirectory(const string &refcstrRootDirectory,bool bDeleteSubdirectories){bool bSubdirectory = false; // Flag, indicating whether// subdirectories have been foundHANDLE hFile; // Handle to directorystd::string strFilePath; // Filepathstd::string strPattern; // PatternWIN32_FIND_DATA FileInformation; // File informationstrPattern = refcstrRootDirectory + "\\*.*";hFile = ::FindFirstFile(strPattern.c_str(), &FileInformation);if (hFile != INVALID_HANDLE_VALUE){do{if (FileInformation.cFileName[0] != '.'){strFilePath.erase();strFilePath = refcstrRootDirectory + "\\" + FileInformation.cFileName;if (FileInformation.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){if (bDeleteSubdirectories){// Delete subdirectoryint iRC = DeleteDirectory(strFilePath, bDeleteSubdirectories);if (iRC)return iRC;}elsebSubdirectory = true;}else{// Set file attributesif (::SetFileAttributes(strFilePath.c_str(),FILE_ATTRIBUTE_NORMAL) == FALSE)return ::GetLastError();// Delete fileif (::DeleteFile(strFilePath.c_str()) == FALSE)return ::GetLastError();}}} while (::FindNextFile(hFile, &FileInformation) == TRUE);// Close handle::FindClose(hFile);DWORD dwError = ::GetLastError();if (dwError != ERROR_NO_MORE_FILES)return dwError;else{if (!bSubdirectory){// Set directory attributesif (::SetFileAttributes(refcstrRootDirectory.c_str(),FILE_ATTRIBUTE_NORMAL) == FALSE)return ::GetLastError();// Delete directoryif (::RemoveDirectory(refcstrRootDirectory.c_str()) == FALSE)return ::GetLastError();}}}return 0;}
阅读全文
1 0
- Linux C 删除文件夹
- C、 C++遍历文件夹,删除文件夹
- 【C#】创建文件夹,删除文件夹,创建文件,删除文件
- C#NTFS格式磁盘中空文件夹删除
- C语言删除文件夹下的目录
- C 实现删除非空文件夹
- c/c++创建删除文件 文件夹
- C/C++创建和删除文件夹操作
- C语言实现递归删除文件夹
- C/C++创建和删除文件夹操作
- C/C++创建和删除文件夹操作
- C/C++创建和删除文件夹操作
- C/C++ 生成文件夹 删除文件夹 获取运行文件路径
- C#/删除文件夹和拷贝文件夹的方法
- C Sharp(C#)中如何删除文件(文件夹)
- 删除文件夹
- 删除文件夹
- 删除文件夹
- Oracle分区索引--本地索引和全局索引比较
- 开发过程遇到的IE兼容性问题以及解决方案
- 【Python爬虫系列】使用requests爬取图片
- 使用反射机制调用属性和私有成员与代理模式的介绍
- numpy中arange和reshape的用法
- C++ 删除文件夹
- leetcode 234. Palindrome Linked List
- gpstop failed. (Reason='int() argument must be a string or a number, not 'NoneType'') exiting...
- 各种数据库的jdbc驱动下载及连接方式
- linux基础命令学习笔记~1
- 一个线程的独白
- FatMouse's trade
- JavaScript中的作用域和作用域链
- 亚马逊架构师:私有云计算有没有前途