文件夹创建以及文件删除C语言实现
2015-06-27 21:57
453 查看
文件操作相关的头文件:
#ifndef HEADER_FILE_ #define HEADER_FILE_ #include<string.h> #include<stdlib.h> #include<stdio.h> #include<string.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #ifdef LINUX_FILEOPT #include<dirent.h> #include<unistd.h> #define ACCESS access #define MKDIR(a) mkdir((a),0755) int L_operation_dir(char *str); #elif WINDOWS_FILEOPT #include<direct.h> #include<io.h> #define ACCESS _access #define MKDIR(a) _mkdir((a)) int W_operation_dir(char *str); #endif #endif其实这个程序的思想也很简单,创建目录的时候依次读取文件夹的名字,然后看文件夹是否存在,如果不存在就利用mkdir函数开始创建。此处为了屏蔽操作系统的差异采用条件编译进行:
#define LINUX_FILEOPT #include"file.h" int creatdir(char *dir) { int i=0; int iRet; int iLen; char *pszDir; if(NULL==dir){ return 0; } pszDir=strdup(dir); iLen=strlen(pszDir); for(i=0;i<iLen;i++){ if(pszDir[i]=='\\'||pszDir[i]=='/'){ pszDir[i]='\0'; iRet=ACCESS(pszDir,0); if(iRet!=0){ iRet=MKDIR(pszDir); if(iRet!=0) return -1; } pszDir[i]='/'; } } iRet=MKDIR(pszDir); return iRet; } #ifdef LINUX_FILEOPT int L_operation_dir(char *str) { DIR *dir; struct dirent *ptr; char filename[BUFSIZ]={0}; dir=opendir(str); if(dir==NULL) creatdir(str); else{ while((ptr=readdir(dir))!=NULL){ if((!strcmp(".",ptr->d_name))||(!strcmp("..",ptr->d_name))) continue; else{ printf("last data:%s\n",ptr->d_name); sprintf(filename,"%s/%s",str,ptr->d_name); printf("file:%s\n",filename); if(unlink(filename)<0){ printf("delete %s failed\n",ptr->d_name); exit(1); } } } closedir(dir); } } #elif WINDOWS_FILEOPT int W_operation_dir(char *str) { char cmd[30]={0}; struct _finddata_t fa; long handle; if((handle = _findfirst(strcat(str,"*"),&fa))==-1L){ printf("path does not exist...\n"); creatdir(str); return 0; } else{ sprintf(cmd,"del /s /q /f %s/*.bmp ",str); system(cmd); } _findclose(handle); return 0; } #endif
相关文章推荐
- c语言模拟函数画图
- C++中的sort函数
- C++13.3 析构函数destructor
- C语言qsort
- C++设计模式-Proxy代理模式
- 黑马程序员-OC语言-ios第二天笔记总结
- C/C++大小端模式与位域
- C++ 13.2 类赋值操作符----定义该类型对象赋值时会发生什么(有不懂)
- Effective C++ 条款25
- 黑马程序员——OC基础学习(一)---第一个OC语言程序和面向对象编程的基本认识
- C++ 中的友元friend
- 考试一,综合练习,C语言,
- 黑马程序员-OC语言-ios第一天笔记总结
- xin de yitian 由死向生
- c++显示调用析构函数(转csdn)
- C语言打印字母金字塔(第一行是A 第二行是ABA ……)
- C++socket编程
- c++_1st par
- (转)C++中的static关键字的总结
- C++_运算符重载