c语言实现文件夹的创建和删除

参考:

http://blog.csdn.net/tigerjibo/article/details/11712039

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环境下头文件为:

[cpp]  view plain  copy
 
  1. #include   

在linux环境下头文件为:

[cpp]  view plain  copy
 
  1. #include   

[cpp]  view plain  copy
 
  1. "code" class="cpp">int access(const char* _Filename, int _AccessMode)  

 
  上述函数在windows和linux环境下均可使用 
  

该函数功能为确定文件或文件夹的访问权限,如果指定的访问权限有效,则函数返回0,否则返回-1

Filename可以是文件路径,也可以是文件夹路径,可以使用绝对路径或相对路径

_AccessMode表示要验证的文件访问权限,有可读、可写、可执行以及是否存在四种权限,当Filename表示文件夹时仅能查询文件夹是否存在

_AccessMode:

头文件unistd.h中有如下定义:

[cpp]  view plain  copy
 
  1. #define R_OK 4 /* Test for read permission. */  
  2. #define W_OK 2 /* Test for write permission. */  
  3. #define X_OK 1 /* Test for execute permission. */  
  4. #define F_OK 0 /* Test for existence. */  
  5. 具体含义如下:  
  6. R_OK 只判断是否有读权限  
  7. W_OK 只判断是否有写权限  
  8. X_OK 判断是否有执行权限  
  9. F_OK 只判断是否存在  
  10. 在宏定义里面分别对应:  
  11. 00 只存在  
  12. 02 写权限  
  13. 04 读权限  
  14. 06 读和写权限  

_AccessMode=00表示只判断是否存在

_AccessMode=02表示文件是否可执行

_AccessMode=04表示文件是否可写

_AccessMode=06表示文件是否可读

在windows环境下还可使用函数_access:

[cpp]  view plain  copy
 
  1. int _access(const char* _Filename, int _AccessMode)  


###############

创建新的文件夹:

windows环境下头文件为:

[cpp]  view plain  copy
 
  1. #include   

函数原型为:

[cpp]  view plain  copy
 
  1. int mkdir(const char *_Path)  
该函数功能为建立一个新的目录,创建成功则返回0,否则返回-1

_Path:新建文件夹路径,可使用绝对路径,可也用相对路径

windows环境下也可用函数_mkdir:

[cpp]  view plain  copy
 
  1. _mkdir(const char *_Path)  

默认mode是0777,表示最大可能的访问权

Linux环境下头文件为:

[cpp]  view plain  copy
 
  1. #include   
  2. #include   


函数原型为:

[cpp]  view plain  copy
 
  1. 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权限,代表其他用户拥有执行的权限
可叠加使用,如0755表示S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH。表示该文件所有者拥有读,写和执行操作权限去,该文件用户组拥有可读,可执行的权限,其他用户拥有可读,可执行的权限。

#################################################

删除文件夹:

windows环境下头文件:

[cpp]  view plain  copy
 
  1. #include   

linux环境下头文件:

[cpp]  view plain  copy
 
  1. #include   


函数原型为:

[cpp]  view plain  copy
 
  1. int rmdir(const char *_Path)  
函数功能是删除参数指定的文件夹,成功返回0,否则返回-1

在windows环境下也可使用函数_rmdir

######################

实现程序:

[cpp]  view plain  copy
 
  1. int main(void)  
  2. {  
  3.     string dir="./hello";  
  4.     if (access(dir.c_str(), 0) == -1)  
  5.     {  
  6.         cout<" is not existing"<
  7.         cout<<"now make it"<
  8. #ifdef WIN32  
  9.         int flag=mkdir(dir.c_str());   
  10. #endif  
  11. #ifdef linux   
  12.         int flag=mkdir(dir.c_str(), 0777);  
  13. #endif  
  14.         if (flag == 0)  
  15.         {  
  16.             cout<<"make successfully"<
  17.         } else {  
  18.             cout<<"make errorly"<
  19.         }  
  20.     }  
  21.   
  22.     if (access(dir.c_str(), 0) == 0)  
  23.     {  
  24.         cout<" exists"<
  25.         cout<<"now delete it"<
  26.         int flag=rmdir(dir.c_str());  
  27.         if (flag == 0)  
  28.         {  
  29.             cout<<"delete it successfully"<
  30.         } else {  
  31.             cout<<"delete it errorly"<
  32.         }  
  33.     }  
  34.   
  35.     //cout<<"Hello World"<  
  36.   
  37.     cout<<"end..."<
  38.     cin.get();  
  39.     return 0;  
  40. }  

http://blog.csdn.net/u012005313/article/details/50688257

函数名: mkdir 
功 能: 建立一个目录(文件夹)
用 法: int mkdir(char *pathname);
程序例: (在win-tc和Dev-c++下运行通过)
#include
#include
//#include  
#include   


int main(void)
{
int status;
system("cls");
status = mkdir("book"); /*这是在程序所在当前文件夹下创建book*/
(!status) ? (printf("Directory created\n")) :
(printf("Unable to create directory\n"));
system("pause");
system("dir"); /*显示创建后当前文件夹下的文件信息*/
system("pause");

status = rmdir("book"); /*删除创建的文件夹book*/
(!status) ? (printf("Directory deleted\n")) :
(perror("Unable to delete directory"));
system("pause");
return 0;
}
https://zhidao.baidu.com/question/79474870.html

你可能感兴趣的:(C语言,c语言)