LINUX.ORG.RU

История изменений

Исправление 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