C++ File文件处理 删除文件和文件夹目录
发布时间:2023-12-08 14:05:18
在C++程序开发中,也会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C++有几种创建,读取,更新和删除文件的方法。本文主要介绍C++ File文件操作删除文件和目录。
1、删除文件
要使用C++ 删除文件,需要使用int remove(const char * filename);
方法,filename
为要删除的文件名,可以为一目录。如果参数filename
为一文件,则调用unlink()
处理;若参数filename
为一目录,则调用rmdir()
来处理。删除成功则返回0
,失败则返回-1
,错误原因存于errno
。C++中头文件是#include <cstdio>
。
例如,
#include<iostream>
#include<cstdio>
#include <string.h>
using namespace std;
int main()
{
char *savePath = "/home/cjavapy/hello.txt";
if(remove(savePath)==0)
{
cout<<"删除成功"<<endl;
}
else
{
cout<<"删除失败"<<endl;
}
//输出错误信息
cout << strerror(errno);
return 0;
}
错误代码:
1)EROFS
欲写入的文件为只读文件。
2)EFAULT
参数filename
指针超出可存取内存空间。
3)ENAMETOOLONG
参数filename
太长。
4)ENOMEM
核心内存不足。
5)ELOOP
参数filename
有过多符号连接问题。
6)EIO
I/O存取错误。
2、删除文件夹
除了能删除文件,也可以使用int rmdir( const char *dirname );
删除文件夹。删除成功则返回0
,失败则返回-1
,错误原因存于errno
。但是,删除的文件夹必须为空:
例如,
#include <unistd.h>
#include <stdlib.h> /* for system()函数 */
#include<iostream>
#include<cstdio>
#include <string.h>
using namespace std;
int main( void )
{
system("mkdir mydir");
system("ls -l mydir");
//getchar();
printf("%s","删除文件夹\n");
cout << "返回值:" << rmdir("mydir") <<endl;
//输出错误信息
cout << strerror(errno);
return(0);
}
3、删除某个目录及目录下的所有子目录和文件
删除某个目录及目录下的所有子目录和文件。remove()
只能删除某个文件或者空目录,要想要删除某个目录及其所有子文件和子目录,要使用递归进行删除。
例如,
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <dirent.h>
#include <string.h>
using namespace std;
void error_quit( const char *msg )
{
perror( msg );
exit( -1 );
}
void change_path( const char *path )
{
printf( "Leave %s Successed . . .\n", getcwd( NULL, 0 ) );
if ( chdir( path ) == -1 )
error_quit( "chdir" );
printf( "Entry %s Successed . . .\n", getcwd( NULL, 0 ) );
}
void rm_dir( const char *path )
{
DIR *dir;
struct dirent *dirp;
struct stat buf;
char *p = getcwd( NULL, 0 );
if ( (dir = opendir( path ) ) == NULL )
error_quit( "OpenDir" );
change_path( path );
while ( dirp = readdir( dir ) )
{
if ( (strcmp( dirp->d_name, "." ) == 0) || (strcmp( dirp->d_name, ".." ) == 0) )
continue;
if ( stat( dirp->d_name, &buf ) == -1 )
error_quit( "stat"
- 上一篇:C++ File文件处理 相关函数方法
- 下一篇:C++ 访问修饰符
-
在线客服
-
联系电话
热线电话
029-89324757
-
手机站点
手机扫一扫打开
-
关注微博
-
回到顶部