Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
skitalez
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 13
1

Не удаляются файлы

17.11.2014, 11:25. Просмотров 515. Ответов 11
Метки нет (Все метки)

Уважаемые специалисты, помогите решить проблему

C++
1
2
3
4
5
6
7
UnicodeString PathCacheMozilla = Userprofile + "\\AppData\\Local\\Mozilla\\Firefox\\Profiles"; // Путь к кешу в Mozilla Firefox Vista\7\8.1
 
else if(DirectoryExists(PathCacheMozilla)){ // Очистка кеша в Vista\7\8.1
   lFile = TDirectory::GetFiles(PathCacheMozilla, "*", TSearchOption::soAllDirectories);
   for(int i = 0; i < lFile.Length; i++) DeleteFile(lFile[i]); // Удаляем файл.
   }
      else Memo1->Lines->Add(L"Путь к кешу Mozilla не найден...Path not found...");
не удаляются файлы из указанной директории, в программе встроена проверка пути, ошибки не возникает т.е программа не ворчит, что путь не найден, однако не происходит удаление файлов
и попутно подскажите, что написать в коде, чтобы удалялись файлы по нескольким маскам
пробовал, специально положил exe файл в папку
C++
1
 lFile = TDirectory::GetFiles(PathCacheMozilla, "*.exe", TSearchOption::soAllDirectories);
не срабатывает
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 11:25
Ответы с готовыми решениями:

Не удаляются log файлы
Не удаляет DeleteFile(&quot;*.log&quot;); Удаляет DeleteFile(&quot;name1.log&quot;); DeleteFile(&quot;name2.log&quot;);...

Не удаляются файлы
Не могу удалить файлы из-под root'а на CentOS 7. История такая: хотел настроить квоты на диске....

Удаляются файлы
Удаляются файлы созданные из под линуха в папке пользователя винды, когда из под винды выполняешь с...

Удаляются файлы
Каждый раз когда захожу утром на свой сайт - сайт валяется, потому что удалены файлы темы...

Не удаляются файлы
добрый день. с некоторых пор появилась такая фигня: некоторые ехе-файлы после операции удаления не...

11
evgovs1991
5 / 5 / 4
Регистрация: 23.09.2014
Сообщений: 144
17.11.2014, 12:49 2
Цитата Сообщение от skitalez Посмотреть сообщение
не удаляются файлы из указанной директории, в программе встроена проверка пути, ошибки не возникает т.е программа не ворчит, что путь не найден, однако не происходит удаление файлов
и попутно подскажите, что написать в коде, чтобы удалялись файлы по нескольким маскам
пробовал, специально положил exe файл в папку
советую почитать как работать с потоками и решение будет другое...а файл хоть один удаляет из папки?

Добавлено через 53 секунды
C++
1
2
AnsiString FileName="c:\\readme.txt";
if (DeleteFile(FileName)) Label1->Caption="true";
0
skitalez
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 13
17.11.2014, 12:52  [ТС] 3
Цитата Сообщение от evgovs1991 Посмотреть сообщение
а файл хоть один удаляет из папки?
нет
0
evgovs1991
5 / 5 / 4
Регистрация: 23.09.2014
Сообщений: 144
17.11.2014, 13:18 4
Цитата Сообщение от skitalez Посмотреть сообщение
Уважаемые специалисты, помогите решить проблему
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
DWORD WINAPI TestThread(LPVOID lpParameter)
{
WIN32_FIND_DATA FindFileData;
    HANDLE hf=FindFirstFile((Form5->Edit2->Text).c_str(), &FindFileData);
    INT i=0;
    if (hf==INVALID_HANDLE_VALUE){ShowMessage("Папка не найдена"); return 1;}
        do{
             DeleteFile(FindFileData.cFileName);
                     }
        while (FindNextFile(hf,&FindFileData));
        FindClose(hf);
   return 0;
}
C++
1
2
3
4
5
void __fastcall TForm5::Button1Click(TObject *Sender)
{
DWORD dwThreadId;
HANDLE hThread = CreateThread(0,0,TestThread,0,0,&dwThreadId);
}
Добавлено через 33 секунды
удалит все файлы что есть
1
17.11.2014, 13:18
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27200 / 18190 / 7203
Регистрация: 22.10.2011
Сообщений: 32,058
Записей в блоге: 6
17.11.2014, 13:22 5
skitalez, после GetFiles чему равно значение lFile.Length?

evgovs1991, казалось бы, при чем тут потоки?
0
skitalez
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 13
17.11.2014, 14:54  [ТС] 6
на 7-ке путь к профилю мозиле 4-я строка, а срабатывает 1-я,

C:\Users\Papa\Application Data\Mozilla\Firefox\Profiles
C:\Users\Papa\Local Settings\Application Data\Mozilla\Firefox\Profiles
C:\Users\Papa\AppData\Local\Mozilla\Firefox\Profiles
C:\Users\Papa\AppData\Roaming\Mozilla\Firefox\Profiles
1
Очистка завершена...Cleaning is completed...

нужная проверка происходит в 4-й строке, а условие истины выполняется в 1-й

в тотал командере такой путь виден, но когда переходишь по пути и смотришь свойства лежащих там файлов, выходит

C:\Users\Papa\AppData\Roaming\Mozilla\Firefox\Profiles
0
evgovs1991
5 / 5 / 4
Регистрация: 23.09.2014
Сообщений: 144
17.11.2014, 15:06 7
C:\Users\Papa\Application Data\Mozilla\Firefox\Profiles\*.* ты так путь указываешь?
0
skitalez
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 13
17.11.2014, 15:13  [ТС] 8
evgovs1991, попробовал, всё равно не удаляются файлы
0
evgovs1991
5 / 5 / 4
Регистрация: 23.09.2014
Сообщений: 144
17.11.2014, 15:22 9
Цитата Сообщение от skitalez Посмотреть сообщение
попробовал, всё равно не удаляются файлы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DWORD WINAPI TestThread(LPVOID lpParameter)
{
WIN32_FIND_DATA FindFileData;
    HANDLE hf=FindFirstFile((Form5->Edit2->Text).c_str(), &FindFileData);
    INT i=0;
    if (hf==INVALID_HANDLE_VALUE){ShowMessage("Папка не найдена"); return 1;}
        do{
           cFileName[i] = (char*)FindFileData.cFileName;  
          DeleteFile(cFileName[i]);
          ++i;
                     }
        while (FindNextFile(hf,&FindFileData));
        FindClose(hf);
   return 0;
}
Добавлено через 1 минуту
CHAR* cFileName[MAX_PATH]; не забудь объявить
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27200 / 18190 / 7203
Регистрация: 22.10.2011
Сообщений: 32,058
Записей в блоге: 6
17.11.2014, 15:30 10
skitalez, никогда не привязывайся к тому, где должен быть профиль. Многие переносят его в другое место. Открой файл C:\Users\{name}\AppData\Roaming\Mozilla\Firefox, найди там profiles.ini, и прочитай оттуда путь к профилю...

Кстати, поскольку ты мои вопросы упорно игнорируешь, отвечать тебе больше я не буду. Как, блин, со стенкой разговариваешь...

Добавлено через 53 секунды
evgovs1991, хватит постить этот код для первого класса церковно-приходской школы. GetFiles при правильном использовании будет в разы быстрее и надежнее...
0
skitalez
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 13
17.11.2014, 15:38  [ТС] 11
Цитата Сообщение от UI Посмотреть сообщение
мои вопросы упорно игнорируешь
я не игнорирую, я в данной области полный ноль, программу делает Maestro ,я лишь сподвигаю\мотивирую его для завершения. Что он мне говорит, то я отвечаю в теме. Было бы замечательно если бы сам автор подключился, да вот не хочет или стесняется или наскучило его эта затея...
весь исходник скинул вам в личку..может вы поможете..
0
Maestro
Маэстро
Вирусоборец
1242 / 366 / 40
Регистрация: 06.09.2009
Сообщений: 793
17.11.2014, 17:42 12
UI, Привет, меня попросил написать эту прогу skitalez. Не сердись за то что нет ответа, человек не понимает что от него хотят. Отчасти эта тема продолжение - Получение значений переменных сред. Честно говоря, не зная как правильно реализовать поиск в папках профиля мозилы, мы решили сделать так.

Проблемка в следующем заключается. Четыре переменные хранящие путь к профилю мозилы, путь для ХР, для Висты\7\8. В Мемо тестовый вывод для поиска проблемы, пути выводятся правильно, но выведеная единичка "1" показывает что условие выполнилось первое, при этом программа выполнялась на виндовс 7, а путь определился как к ХР. Естественно, предполагаю, что lFile.Length равна нулю, но пока проверить не могу, семёрки нет, а друг уже выключил скайп.
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
...
   WCHAR path[MAX_PATH];
   SHGetSpecialFolderPathW(NULL, path, CSIDL_PROFILE, FALSE); // Получили путь к профилю, всё гуд
 
   UnicodeString PathCacheMozillaXP = Userprofile + "\\Application Data\\Mozilla\\Firefox\\Profiles"; // Путь к кешу в Mozilla Firefox XP
   UnicodeString PathCacheMozillaXP1 = Userprofile + "\\Local Settings\\Application Data\\Mozilla\\Firefox\\Profiles"; // Путь к кешу в Mozilla Firefox XP
   UnicodeString PathCacheMozilla678 = Userprofile + "\\AppData\\Local\\Mozilla\\Firefox\\Profiles"; // Путь к кешу в Mozilla Firefox Vista\7\8.1
   UnicodeString PathCacheMozilla6787 = Userprofile + "\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles"; // Путь к кешу в Mozilla Firefox Vista\7\8.1
 
 
   // Mozilla Firefox
   if(CheckBox4->Checked){ // Очистка кеша Mozilla Firefox
      Memo1->Lines->Add(PathCacheMozillaXP);
      Memo1->Lines->Add(PathCacheMozillaXP1);
      Memo1->Lines->Add(PathCacheMozilla678);
      Memo1->Lines->Add(PathCacheMozilla6787);
      if(DirectoryExists(PathCacheMozillaXP)){ // Очистка кеша в ХР
         Memo1->Lines->Add("1");
         lFile = TDirectory::GetFiles(PathCacheMozillaXP, "*", TSearchOption::soAllDirectories);
         for(int i = 0; i < lFile.Length; i++) DeleteFile(lFile[i]); // Удаляем файл.
        }
      else if(DirectoryExists(PathCacheMozillaXP1)){ // Очистка кеша в Vista\7\8.1
         Memo1->Lines->Add("2");
         lFile = TDirectory::GetFiles(PathCacheMozillaXP1, "*", TSearchOption::soAllDirectories);
         for(int i = 0; i < lFile.Length; i++) DeleteFile(lFile[i]); // Удаляем файл.
        }
      else if(DirectoryExists(PathCacheMozilla678)){ // Очистка кеша в Vista\7\8.1
         Memo1->Lines->Add("3");
         lFile = TDirectory::GetFiles(PathCacheMozilla678, "*", TSearchOption::soAllDirectories);
         for(int i = 0; i < lFile.Length; i++) DeleteFile(lFile[i]); // Удаляем файл.
        }
      else if(DirectoryExists(PathCacheMozilla6787)){ // Очистка кеша в Vista\7\8.1
         Memo1->Lines->Add("4");
         lFile = TDirectory::GetFiles(PathCacheMozilla6787, "*", TSearchOption::soAllDirectories);
         for(int i = 0; i < lFile.Length; i++) DeleteFile(lFile[i]); // Удаляем файл.
        }
      else Memo1->Lines->Add(L"Путь к кешу Mozilla не найден...Path not found...");
     }
 
...
Вот и выходит что этот путь для ХР, а на семёрке он срабатывает почему-то
Код
C:\Users\Papa\Application Data\Mozilla\Firefox\Profiles
Хотя там он такой
Код
C:\Users\Papa\AppData\Roaming\Mozilla\Firefox\Profiles
Цитата Сообщение от skitalez Посмотреть сообщение
да вот не хочет или стесняется или наскучило его эта затея...
Да изобретаем велосипед с тобой, говорил не один раз ССleaner решает этот вопрос. )
2
17.11.2014, 17:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 17:42

Не удаляются файлы
Здравствуйте. Писал скрипт на js+php удаление записи с картинкой, запись из бд удаляется, а файлы...

Файлы не удаляются
Большое спасибо создателям форума !!! Вот моя проблема . С фаилообменника загрузила видео файлы и...

Не удаляются файлы
Нужно удалить файлы из папки стима, пользовался разными функциями, не помогает даже запуск от имени...


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

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

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