Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
EragonJKee
9 / 10 / 1
Регистрация: 19.01.2014
Сообщений: 83
#1

Как очистить папку от всех файлов - C++

16.02.2014, 19:07. Просмотров 711. Ответов 9
Метки нет (Все метки)

Возник такой вопрос: как очистить папку от всех файлов, то бишь удалить все внутри папки, кроме самой папки?
Я поискал немного информации в Сети, нашел некоторые коды, но практически все они не поределялись (ибо я не знал, какие заголовки подключать, а тот же Интернет внятного ответа не дал). Один код прошел:

C++
1
2
3
system( "cd c:\windows" );
  system( "rmdir /s/q Temp" );
     system( "mkdir Temp" );
Ввел я вместо c:\windows свой адрес вида D:\Program Files\Catalog, вместо Temp - папку, которую я хочу "зачистить". Но программа мне выдала следующее сообщение:

Системе не удается найти указанный путь.
Подскажите, что можно сделать.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2014, 19:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как очистить папку от всех файлов (C++):

Перемещение файлов в папку - C++
Добрый вечер! Подскажите пожалуйста! У меня файлы хранятся в массиве char, как их переместить в папку?(C++)?

Копирование файлов в папку по условию - C++
Дано два каталога(dir1, dir2), содержащих файлы *.txt и не содержащие подкаталогов. Наполнить третий каталог (RESULT): -для каждого...

Копирование файлов в папку рядом с программой - C++
Здравствуйте! Необходимо скопировать файл в папку рядом с программой. Пробовал вот так CopyFile("C:\\X.txt", "\\XZ\\X.txt", false); но...

Как можно сделать цикл проверки всех файлов в одной папке - C++
Здравствуйте, можете ли кто-нибудь подсказать как можно сделать цикл проверки всех файлов в одной папке?

Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать XML в нужном формате - C++
Задача: Искать в указанном каталоге все файлы во всех поддиректориях и формировать XML в нужном формате. XML записать в директорию...

Извлечение файлов из SFX-архива в указанную папку - C++
Всех с прошедшим!Не знал куда написать,напишу сюда Подскажите как сделать программу которая извлекает файлы в указанную папку. Видел где-то...

9
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
16.02.2014, 19:18 #2
EragonJKee, слеши нужно двойные:
C++
1
system( "cd c:\\windows" );
и подключить
C++
1
@include <windows.h>
1
EragonJKee
9 / 10 / 1
Регистрация: 19.01.2014
Сообщений: 83
16.02.2014, 21:53  [ТС] #3
Ничего не поменялось :c

Добавлено через 2 часа 29 минут
Может еще кто знает?
0
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
16.02.2014, 22:20 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
EragonJKee, c командной строкой что-то дейсвительно сложно...
Все время следующая команда выполняется из каталога проекта, а не из того, в который перешли по cd.

Может так пойдет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <Windows.h>
#include <shellapi.h>
#include <iostream>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    SHFILEOPSTRUCT FileOp;
 
    FileOp.hwnd = NULL;
    FileOp.wFunc = FO_DELETE;
    FileOp.pFrom = "d:\\test";
    FileOp.pTo = NULL;
    FileOp.fFlags = NULL; 
    FileOp.lpszProgressTitle = NULL;
 
    SHFileOperation(&FileOp);
    std::cout << GetLastError() << std::endl;
    return 0;
}
1
EragonJKee
9 / 10 / 1
Регистрация: 19.01.2014
Сообщений: 83
17.02.2014, 00:11  [ТС] #5
error C2440: =: невозможно преобразовать "const char [41]" в "LPCWSTR"
0
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
17.02.2014, 00:59 #6
EragonJKee,
C++
1
FileOp.pFrom = L"d:\\test";
1
EragonJKee
9 / 10 / 1
Регистрация: 19.01.2014
Сообщений: 83
17.02.2014, 14:47  [ТС] #7
Неа, теперь программа запускается, возвращает нулевое значение и, соответственно, ничего не удаляет.

Добавлено через 2 минуты
Понял, в чем смысл, нужно было везде ставить двойные слеши:

C++
1
FileOp.pFrom = L"d:\\program files\\folder\\folder\\folder";
Но программа запрашивает разрешение на удаление каталога, мне же нужно, чтобы папка осталась на месте, а все, что внутри без подтверждения ушло в небытие.

Добавлено через 6 минут
Так, как удалить внутренние файлы без папки (то есть, чтобы папка не удалялась, а только то, что внутри) я разобрался:

C++
1
FileOp.pFrom = L"d:\\program files\\folder\\folder\\folder\\*";
Но вот вопрос с ненадобностью подтверждения - остается.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
17.02.2014, 14:54 #8
EragonJKee, судя по http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx можно установить флаг FOF_NOCONFIRMATION
1
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
17.02.2014, 15:00 #9
не
Цитата Сообщение от EragonJKee Посмотреть сообщение
L"d:\\program files\\folder\\folder\\folder"
а
TEXT("d:\\program files\\folder\\folder\\folder")
вообще говоря
че, ЦЭ/виндовз то удалил?
0
EragonJKee
9 / 10 / 1
Регистрация: 19.01.2014
Сообщений: 83
17.02.2014, 21:06  [ТС] #10
Цитата Сообщение от gray_fox Посмотреть сообщение
EragonJKee, судя по http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx можно установить флаг FOF_NOCONFIRMATION
Спасибо, то, что нужно

Цитата Сообщение от Kukurudza Посмотреть сообщение
TEXT("d:\\program files\\folder\\folder\\folder")
вообще говоря
че, ЦЭ/виндовз то удалил?
Не понял суть вопроса? И в чем, собственно разница?

Добавлено через 2 часа 47 минут
Update

Добавлено через 2 часа 57 минут
апдейт
0
17.02.2014, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 21:06
Привет! Вот еще темы с ответами:

Программа, находящая папку по её полному "пути" и подсчитывающая количество файлов в ней - C++
Здравствуйте, вот код программы, а ошибка состоит в том, что программа не ищет папки или файлы по заданному пути, вместо этого она ищет...

Как очистить экран? - C++
Как очистить экран?

Как очистить cin? - C++
собственно защита от дурака, от пользователя требуется цифра, а он вводит букву, и все следующие cin не работают, cin.clear() не подходит,...

Как очистить ostringstream? - C++
Есть код: #include &lt;sstream&gt; #include &lt;bitset&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; int main() { ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.