c++文件及文件夹操作(一)
2015-03-16 21:22
232 查看
文件夹的操作和文件的操作有许多种方式,这一系列的文章将介绍C++对文件的操作,本篇blog介绍文件夹和文件的创建和删除,以及判断他们是否存在
如何创建一个文件夹?
1、 使用dos命令
2、 使用windows提供的API
如何删除一个文件夹
1、 使用DOS命令
2、 使用windowsAPI
创建一个新文件
1、 使用流式文件操作方法
2、 使用I/O操作方法
删除文件
使用流式文件操作方法
判断一个文件夹是否存在
使用PathIsDirectory 函数,引入头文件
如何创建一个文件夹?
1、 使用dos命令
int FileOperate::CreateFolderByDos(string strName) { string strFolder = "md "; strFolder += strName; return system(strFolder.c_str()); }这里要注意,文件夹的格式必须是 F:\\ 格式的,不要使用反斜杠 /否则创建失败
2、 使用windows提供的API
int FileOperate::CreateFolderByAPI(string strName) { size_t size = strName.length(); wchar_t *buffer = new wchar_t[size+1]; MultiByteToWideChar( CP_ACP, 0, strName.c_str(), size, buffer, size * sizeof(wchar_t) ); buffer[size] = 0; // 确保以 '\0' 结尾 int tmp = CreateDirectory(buffer,0); delete buffer; return tmp; }
如何删除一个文件夹
1、 使用DOS命令
int FileOperate::DelFolderByDos(string strName) { string strFolder = "rd "; strFolder += strName; return system(strFolder.c_str()); }注意文件夹名称不要使用反斜杠
2、 使用windowsAPI
bool FileOperate::DelFolderByAPI(string strName) { size_t size = strName.length(); wchar_t *buffer = new wchar_t[size+1]; MultiByteToWideChar( CP_ACP, 0, strName.c_str(), size, buffer, size * sizeof(wchar_t) ); buffer[size] = 0; // 确保以 '\0' 结尾 BOOL bResult = RemoveDirectory(buffer); delete buffer; if(bResult==TRUE) { return true; } return false; }
创建一个新文件
1、 使用流式文件操作方法
bool FileOperate::CreateFileByFILE(string strName) { FILE* file = fopen(strName.c_str(),"wb"); if(NULL == file) { return false; } fclose(file); return true; }
2、 使用I/O操作方法
bool FileOperate::CreateFileByIO(string strName) { int handle = open(strName.c_str(),O_RDWR|O_CREAT); if(-1==handle) { return false; } close(handle); return true; }
删除文件
使用流式文件操作方法
int FileOperate::DeleteFileByFILE(string strName) { return remove(strName.c_str()); }
判断一个文件夹是否存在
使用PathIsDirectory 函数,引入头文件
#include<Shlwapi.h> #pragma comment(lib, "shlwapi.lib")实例代码
bool FileOperate::IsFolderExist(string strName) { size_t size = strName.length(); wchar_t *buffer = new wchar_t[size+1]; MultiByteToWideChar( CP_ACP, 0, strName.c_str(), size, buffer, size * sizeof(wchar_t) ); buffer[size] = 0; // 确保以 '\0' 结尾 BOOL bExist = PathIsDirectory(buffer); delete buffer; return bExist==FALSE?false:true; }判断一个文件是否存在
bool FileOperate::IsFileExist(string strName) { return (access(strName.c_str(), 0) == 0); }
相关文章推荐
- C++中读入一个文件夹下多个文件的数据操作(文件夹遍历)
- C / C++ 文件文件夹操作详细整理
- C++文件与文件夹操作(3)--文件与文件夹复制
- c++ 文件及文件夹操作(三)
- c++对文件进行操作之读取文件夹下面的图片名称
- C++文件与文件夹操作(2)--判断并筛选文件夹目录下特定后缀文件
- C++ 文件及文件夹操作(二)
- [C++]文件/文件夹的创建和删除操作
- c++关于文件夹(文件)的相关操作_findfirst,_findnext和_findclose方法
- C++文件与文件夹操作(1)--判断文件和文件夹是否存在
- .NET中文件与文件夹的操作
- 【VS开发】cmd dos 批处理重命名文件<不一定非得吭哧吭哧的写C++来操作>
- python中os.path模块用于操作文件或文件夹
- C++ 文件操作
- 关于c++中的文件操作
- C/C++/Window 文件操作
- python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块
- C++文件的操作
- WPF FolderBrowserDialog 获取带有空格的文件夹路径后操作文件无效的处理
- C#文件及文件夹操作示例