История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Как то так при условии \n
:
input:
/home/dron/egnaroc/include/asset.h
/home/dron/egnaroc/include/net.h
/home/dron/egnaroc/include/event.h
/home/dron/egnaroc/include/ui.h
/home/dron/egnaroc/include/dir1
/home/dron/egnaroc/include/dir2
/home/dron/egnaroc/include/dir3
/home/dron/egnaroc/include/netu-faila.h
/home/dron/egnaroc/include/fake-file.h
/home/dron/egnaroc/include/data
/home/dron/egnaroc/include/SDL2
/home/dron/egnaroc/include/NETU-KATALOGA
/home/dron/egnaroc/include/FAKE-DIR
out:
dron@gnu:~$ gcc gg.c
dron@gnu:~$ ./a.out ./datafile.txt
Удаляю файл: '/home/dron/egnaroc/include/asset.h'
Удаляю файл: '/home/dron/egnaroc/include/net.h'
Удаляю файл: '/home/dron/egnaroc/include/event.h'
Удаляю файл: '/home/dron/egnaroc/include/ui.h'
Удаляю каталог: '/home/dron/egnaroc/include/dir1'
Удаляю каталог: '/home/dron/egnaroc/include/dir2'
Удаляю каталог: '/home/dron/egnaroc/include/dir3'
Файла или каталога '/home/dron/egnaroc/include/netu-faila.h' не существует или нет доступа
Файла или каталога '/home/dron/egnaroc/include/fake-file.h' не существует или нет доступа
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'djb2_hash.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'vertex_list.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'list.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'utf8.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'vertex_hashtable.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'randf.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'trigger.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'int_hashtable.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'dict.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'int_list.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'spline.h'
Каталог '/home/dron/egnaroc/include/SDL2' не пуст и содержит файл/каталог 'SDL_local_opengl.h'
Каталог '/home/dron/egnaroc/include/SDL2' не пуст и содержит файл/каталог 'SDL_local.h'
Файла или каталога '/home/dron/egnaroc/include/NETU-KATALOGA' не существует или нет доступа
Файла или каталога '/home/dron/egnaroc/include/FAKE-DIR' не существует или нет доступа
dron@gnu:~$
gg.c:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <dirent.h>
#include <string.h>
int main(int argc, char *argv[])
{
if(argc < 2)
{
printf("use: appname datafile\n");
exit(1);
}else{
FILE * input = fopen(argv[1],"r");
if(!input)
{
printf("filed to open -> '%s'\n",argv[1]);
exit(2);
}else{
char path[PATH_MAX];
while( fscanf(input,"%s\n", path) == 1)
{
DIR * dir = NULL;
FILE * file = NULL;
if((dir = opendir(path)))
{
struct dirent * ent = NULL;
int num_items = 0;
while((ent = readdir(dir)))
{
if(strcmp(ent->d_name,".") != 0 && strcmp(ent->d_name,"..") != 0)
{
printf("Каталог '%s' не пуст и содержит файл/каталог '%s'\n",path,ent->d_name);
num_items++;
}
}
if(num_items == 0)
{
/*код удаления каталога*/
printf("Удаляю каталог: '%s'\n",path);
}
closedir(dir);
}else if((file = fopen(path,"r")))
{
/*код удаления Файла*/
printf("Удаляю файл: '%s'\n",path);
fclose(file);
}else{
printf("Файла или каталога '%s' не существует или нет доступа\n",path);
}
}
}
fclose(input);
}
return 0;
}
Ответственности за рм рф всех твоих файлов не несу :D
Исходная версия LINUX-ORG-RU, :
Как то так:
input:
/home/dron/egnaroc/include/asset.h
/home/dron/egnaroc/include/net.h
/home/dron/egnaroc/include/event.h
/home/dron/egnaroc/include/ui.h
/home/dron/egnaroc/include/dir1
/home/dron/egnaroc/include/dir2
/home/dron/egnaroc/include/dir3
/home/dron/egnaroc/include/netu-faila.h
/home/dron/egnaroc/include/fake-file.h
/home/dron/egnaroc/include/data
/home/dron/egnaroc/include/SDL2
/home/dron/egnaroc/include/NETU-KATALOGA
/home/dron/egnaroc/include/FAKE-DIR
out:
dron@gnu:~$ gcc gg.c
dron@gnu:~$ ./a.out ./datafile.txt
Удаляю файл: '/home/dron/egnaroc/include/asset.h'
Удаляю файл: '/home/dron/egnaroc/include/net.h'
Удаляю файл: '/home/dron/egnaroc/include/event.h'
Удаляю файл: '/home/dron/egnaroc/include/ui.h'
Удаляю каталог: '/home/dron/egnaroc/include/dir1'
Удаляю каталог: '/home/dron/egnaroc/include/dir2'
Удаляю каталог: '/home/dron/egnaroc/include/dir3'
Файла или каталога '/home/dron/egnaroc/include/netu-faila.h' не существует или нет доступа
Файла или каталога '/home/dron/egnaroc/include/fake-file.h' не существует или нет доступа
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'djb2_hash.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'vertex_list.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'list.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'utf8.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'vertex_hashtable.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'randf.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'trigger.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'int_hashtable.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'dict.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'int_list.h'
Каталог '/home/dron/egnaroc/include/data' не пуст и содержит файл/каталог 'spline.h'
Каталог '/home/dron/egnaroc/include/SDL2' не пуст и содержит файл/каталог 'SDL_local_opengl.h'
Каталог '/home/dron/egnaroc/include/SDL2' не пуст и содержит файл/каталог 'SDL_local.h'
Файла или каталога '/home/dron/egnaroc/include/NETU-KATALOGA' не существует или нет доступа
Файла или каталога '/home/dron/egnaroc/include/FAKE-DIR' не существует или нет доступа
dron@gnu:~$
gg.c:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <dirent.h>
#include <string.h>
int main(int argc, char *argv[])
{
if(argc < 2)
{
printf("use: appname datafile\n");
exit(1);
}else{
FILE * input = fopen(argv[1],"r");
if(!input)
{
printf("filed to open -> '%s'\n",argv[1]);
exit(2);
}else{
char path[PATH_MAX];
while( fscanf(input,"%s\n", path) == 1)
{
DIR * dir = NULL;
FILE * file = NULL;
if((dir = opendir(path)))
{
struct dirent * ent = NULL;
int num_items = 0;
while((ent = readdir(dir)))
{
if(strcmp(ent->d_name,".") != 0 && strcmp(ent->d_name,"..") != 0)
{
printf("Каталог '%s' не пуст и содержит файл/каталог '%s'\n",path,ent->d_name);
num_items++;
}
}
if(num_items == 0)
{
/*код удаления каталога*/
printf("Удаляю каталог: '%s'\n",path);
}
closedir(dir);
}else if((file = fopen(path,"r")))
{
/*код удаления Файла*/
printf("Удаляю файл: '%s'\n",path);
fclose(file);
}else{
printf("Файла или каталога '%s' не существует или нет доступа\n",path);
}
}
}
fclose(input);
}
return 0;
}
Ответственности за рм рф всех твоих файлов не несу :D