Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 23.06.2014
Сообщений: 167
1

Не удается удалить директорию

10.02.2016, 17:39. Показов 594. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь написать функцию, удаляющую директорию со всеми ее вложенными папками и файлами.
Специально для этого завел директорию. В ней пара файлов и одна папка. В этой внетренней папке лежит еще пара фалов. Заходя во внутреннюю папку файлы удаляются успешно и сама вложенная папка тоже удаляется без проблем. После этого удаляется остаток файлов в главной, удаляемой папке. Но сама папка не удаляется.
Тоесть есть папка New:

New
-----file.txt
-----New2 - это вложенная папка
-----------new2file.txt
-----------new2file.txt
-----file2txt

все успешно удаляется, кроме самой папки New. При ее удалении фунция rmdir возвращает ненулевое значение.

При повторном запуске программы, папка New (будучи уже пустой) удаляется нормально.
Видимо функция по удалению директории видит в ней файлы, которые уже были удалены.

Надеюсь обьяснил понятно в чем проблема. Прошу помочь понять как это решить...

Код прилагается:

параметром метод принимает строку типа "D:\New\"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
void OperationsWithDirectories::RemovingCycle(string _path)
{
    string wayToFile;           // string to hold the path to the directory without mask 
    string deletedFile;         // string which would hold the way to deleting file
    wayToFile = _path;
 
    _path += "*.*";             // add a mask to the _path string
 
 
    _finddata_t* fileinfo = new _finddata_t;
 
    long done = _findfirst(_path.c_str(), fileinfo);
 
    int IsContinue = done;
 
    while (IsContinue != -1)
    {
        deletedFile = wayToFile + fileinfo->name;
 
        if (fileinfo->attrib == _A_SUBDIR)
        {
            if (strcmp(fileinfo->name, ".") != 0 && strcmp(fileinfo->name, "..") != 0)
            {
                cout << "\nEnter subdirectory\n";
                RemovingCycle(wayToFile + fileinfo->name + "");     //recursive func wich would start, when subdirectory is exist
                cout << "\nOutta subdirectory\n";
            }
        }
        else
        {
            if ((remove(deletedFile.c_str())) != 0)
                cout << "\n\n ERROR IN FILE DELETING\n\n";
            else
                cout << endl << deletedFile << " - was deleted";
        }
 
        IsContinue = _findnext(done, fileinfo);
    }
 
    if ((_rmdir(wayToFile.c_str())) != 0)
        cout << "\n\nERROR IN DIRECT - " << wayToFile << " DELETING\n\n";
    else
        cout << "\ndir - " << wayToFile << " was deleted succesfully\n";
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2016, 17:39
Ответы с готовыми решениями:

Удалить файл/директорию
Как можна удалит чтото в С++ билдере, Уменя ест форма на которем ListBox, 2 Button и опендиалог......

Нужно вывести на экран информацию про системную директорию и директорию windows
Помогите плз!Нужно написать прогу которая выводит на екран такую инфу:Computer name,user...

Не удается создать директорию и записать файл (Android 6)
Предварительно добавил в permission android.permission.WRITE_EXTERNAL_STORAGE и...

Удалить каталог (директорию)
можно создать .exe файл, способный удалить директорию, путь к которой приходит из консоли(другая...

1
260 / 208 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
10.02.2016, 19:10 2
C++
1
2
3
#include <cstdlib>
 
system("rd /s/q обрСлэш"C:/ обрСлэш"");
0
10.02.2016, 19:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2016, 19:10
Помогаю со студенческими работами здесь

Удалить файл на директорию выше
Удалить файл на директорию выше, фактически лежат файлы, но пишет что там нал. Не работает только ...

Удалить директорию вместе с файлами
Здравствуйте! Нашел скрипт для удаления папки с файлами function removeDirectory($dir) { if...

IIS + ASP(VBS) Создать и удалить скриптом директорию на серваке.
Привет asp community! Реально ли сделать две вещи: 1. Создать скриптом директорию на серваке....

Как удалить директорию вместе с файлами которые в ней PHP
в общем есть папка &quot;./папка/&quot;, в ней есть еще папки и файлы и так далее, подскажите как удалить эту...

Скрипт не распознаёт директорию как директорию
Здравствуйте уважаемые! Ещё одна проблемка вдогонку к предыдущему посту: Есть ajax.pl — Общается...

С заданного диска удалить все файлы с заданным расширением, создать там заданную директорию, и в эту директор
С заданного диска удалить все файлы с заданным расширением, создать там заданную директорию, и в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru