C/C++ 判断文件夹是否存在以及创建、删除文件夹 windows以及linux通用
2016-02-18 20:49
1326 查看
参考:
/article/1441517.html
http://baike.baidu.com/subview/355/5900599.htm
http://blog.sina.com.cn/s/blog_5db869d00100h7hi.html
http://baike.baidu.com/view/1279338.htm
http://baike.baidu.com/view/1081230.htm
##########################################################
判断文件夹是否存在:
在windows环境下头文件为:
在linux环境下头文件为:
上述函数在windows和linux环境下均可使用
该函数功能为确定文件或文件夹的访问权限,如果指定的访问权限有效,则函数返回0,否则返回-1
Filename可以是文件路径,也可以是文件夹路径,可以使用绝对路径或相对路径
_AccessMode表示要验证的文件访问权限,有可读、可写、可执行以及是否存在四种权限,当Filename表示文件夹时仅能查询文件夹是否存在
_AccessMode:
头文件unistd.h中有如下定义:
_AccessMode=00表示只判断是否存在
_AccessMode=02表示文件是否可执行
_AccessMode=04表示文件是否可写
_AccessMode=06表示文件是否可读
在windows环境下还可使用函数_access:
###############
创建新的文件夹:
windows环境下头文件为:
函数原型为:
_Path:新建文件夹路径,可使用绝对路径,可也用相对路径
windows环境下也可用函数_mkdir:
默认mode是0777,表示最大可能的访问权
linux环境下头文件为:
函数原型为:
可叠加使用,如0755表示S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH。表示该文件所有者拥有读,写和执行操作权限去,该文件用户组拥有可读,可执行的权限,其他用户拥有可读,可执行的权限。
#################################################
删除文件夹:
windows环境下头文件:
linux环境下头文件:
函数原型为:
在windows环境下也可使用函数_rmdir
######################
实现程序:
/article/1441517.html
http://baike.baidu.com/subview/355/5900599.htm
http://blog.sina.com.cn/s/blog_5db869d00100h7hi.html
http://baike.baidu.com/view/1279338.htm
http://baike.baidu.com/view/1081230.htm
##########################################################
判断文件夹是否存在:
在windows环境下头文件为:
#include <io.h>
在linux环境下头文件为:
#include <unistd.h>
<pre name="code" class="cpp">int access(const char* _Filename, int _AccessMode)
上述函数在windows和linux环境下均可使用
该函数功能为确定文件或文件夹的访问权限,如果指定的访问权限有效,则函数返回0,否则返回-1
Filename可以是文件路径,也可以是文件夹路径,可以使用绝对路径或相对路径
_AccessMode表示要验证的文件访问权限,有可读、可写、可执行以及是否存在四种权限,当Filename表示文件夹时仅能查询文件夹是否存在
_AccessMode:
头文件unistd.h中有如下定义:
#define R_OK 4 /* Test for read permission. */ #define W_OK 2 /* Test for write permission. */ #define X_OK 1 /* Test for execute permission. */ #define F_OK 0 /* Test for existence. */ 具体含义如下: R_OK 只判断是否有读权限 W_OK 只判断是否有写权限 X_OK 判断是否有执行权限 F_OK 只判断是否存在 在宏定义里面分别对应: 00 只存在 02 写权限 04 读权限 06 读和写权限
_AccessMode=00表示只判断是否存在
_AccessMode=02表示文件是否可执行
_AccessMode=04表示文件是否可写
_AccessMode=06表示文件是否可读
在windows环境下还可使用函数_access:
int _access(const char* _Filename, int _AccessMode)
###############
创建新的文件夹:
windows环境下头文件为:
#include <direct.h>
函数原型为:
int mkdir(const char *_Path)该函数功能为建立一个新的目录,创建成功则返回0,否则返回-1
_Path:新建文件夹路径,可使用绝对路径,可也用相对路径
windows环境下也可用函数_mkdir:
_mkdir(const char *_Path)
默认mode是0777,表示最大可能的访问权
linux环境下头文件为:
#include <sys/types.h> #include <sys/stat.h>
函数原型为:
int mkdir(const char *pathname, mode_t mode);该函数功能为创建一个新的目录,并指定它的执行权限。如果创建成功则返回0,否则,返回-1
S_IRWXU | 00700权限,代表该文件所有者拥有读,写和执行操作的权限 |
S_IRUSR(S_IREAD) | 00400权限,代表该文件所有者拥有可读的权限 |
S_IWUSR(S_IWRITE) | 00200权限,代表该文件所有者拥有可写的权限 |
S_IXUSR(S_IEXEC) | 00100权限,代表该文件所有者拥有执行的权限 |
S_IRWXG | 00070权限,代表该文件用户组拥有读,写和执行操作的权限 |
S_IRGRP | 00040权限,代表该文件用户组拥有可读的权限 |
S_IWGRP | 00020权限,代表该文件用户组拥有可写的权限 |
S_IXGRP | 00010权限,代表该文件用户组拥有执行的权限 |
S_IRWXO | 00007权限,代表其他用户拥有读,写和执行操作的权限 |
S_IROTH | 00004权限,代表其他用户拥有可读的权限 |
S_IWOTH | 00002权限,代表其他用户拥有可写的权限 |
S_IXOTH | 00001权限,代表其他用户拥有执行的权限 |
#################################################
删除文件夹:
windows环境下头文件:
#include <direct.h>
linux环境下头文件:
#include <dirent.h>
函数原型为:
int rmdir(const char *_Path)函数功能是删除参数指定的文件夹,成功返回0,否则返回-1
在windows环境下也可使用函数_rmdir
######################
实现程序:
int main(void) { string dir="./hello"; if (access(dir.c_str(), 0) == -1) { cout<<dir<<" is not existing"<<endl; cout<<"now make it"<<endl; #ifdef WIN32 int flag=mkdir(dir.c_str()); #endif #ifdef linux int flag=mkdir(dir.c_str(), 0777); #endif if (flag == 0) { cout<<"make successfully"<<endl; } else { cout<<"make errorly"<<endl; } } if (access(dir.c_str(), 0) == 0) { cout<<dir<<" exists"<<endl; cout<<"now delete it"<<endl; int flag=rmdir(dir.c_str()); if (flag == 0) { cout<<"delete it successfully"<<endl; } else { cout<<"delete it errorly"<<endl; } } //cout<<"Hello World"<<endl; cout<<"end..."<<endl; cin.get(); return 0; }
相关文章推荐
- Linux笔记(4)——命令基本格式与文件处理命令
- VM 中Centos7 增加/目录容量
- 20160218自学Linux_根文件目录介绍+目录管理命令学习(mkdir,rmdir,tree,touch,stat,rm,nano,cp,mv,insatll)
- 《linux优化之需要开机启动的重点服务详解》
- linux系统管理及配置
- linux进程间通信学习
- 《Linxu优化之selinux详解以及运行级别详解》
- LINUX一网卡多IP设置
- CentOS7常用设置
- CentOS6.5安装zabbix监控及汉化
- lwn拾遗:[sn3218 led driver]-api解释-2
- C/C++ 基本数据类型之间的相互转换 int / char / string / vector windows与linux通用
- lwn拾遗:[sn3218 led drivers]-api解释-1
- linux创建账户并自动生成主目录和主目录下的文件
- 【Linux】ldd命令
- linux常用命令1--文件处理命令
- 删除SVN三种方法delSvn(windows+linux)
- linux下通过脚本监控程序运行
- 《Linux系统useradd-passwd添加账号密码讲解及su命令介绍》
- Linux安装指定mysql版本