首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

自个儿用代码实现非空目录的删除(java及C语言)

2013-03-19 
自己用代码实现非空目录的删除(java及C语言)今天没什么事,就随便写了写代码,用代码实现删除非空目录。在jav

自己用代码实现非空目录的删除(java及C语言)

今天没什么事,就随便写了写代码,用代码实现删除非空目录。在java或c语言中,是没有直接的函数能够调用而且实现非空目录的删除。以下是我的代码实现 ,经过测试!


Java代码

#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <dirent.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define PATH_LENGTH 1024#define LENGTH 1024void DeleteDir(char *);int main(int argc, const char *argv[]){    char filename[LENGTH];    char filepath[PATH_LENGTH];    if(NULL == getcwd(filepath,PATH_LENGTH)){//得到绝对当前文件的绝对路径         fprintf(stderr,"can't get current pwd\n");        return 1;    }    fgets(filename,sizeof(filename),stdin);//输入当前目录下的文件或目录名     filename[strlen(filename) - 1] = 0;    strcat(filepath,"/");    strcat(filepath,filename);    printf("%s\n",filepath);    DeleteDir(filepath);    return 0;}void DeleteDir(char *filename){        struct stat stbuf;        char filepath[PATH_LENGTH];        if(stat(filename,&stbuf) == -1){            fprintf(stderr,"Can't Access %s\n",filename);            return;        }        if((stbuf.st_mode&S_IFMT) == S_IFDIR){//如果是目录的情况           DIR *dfd;          struct dirent *dp;          if((dfd = opendir(filename)) == NULL){                fprintf(stderr,"can't open %s\n",filename);          }           while((dp = readdir(dfd)) != NULL){                if(strcmp(dp->d_name,".") == 0 ||strcmp(dp->d_name,"..") == 0){                    continue;                }                strcpy(filepath,filename);                strcat(filepath,"/");                printf("%s\n",dp->d_name);                strcat(filepath,dp->d_name);                DeleteDir(filepath);//递归调用                 remove(filepath);//删除空目录           }          remove(filename);//删除空目录           closedir(dfd);         }else{//如果是文件的情况            strcpy(filepath,filename);           strcat(filepath,"/");           printf("%s\n",filename);           unlink(filename);          }}


热点排行