Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/48: Рейтинг темы: голосов - 48, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31

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

06.12.2014, 22:05. Показов 9908. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не удаляет
C++
1
DeleteFile("*.log");

Удаляет
C++
1
2
3
DeleteFile("name1.log");
DeleteFile("name2.log");
DeleteFile("name3.log");
Нужно удалить только log файлы,а остальные нельзя трогать! Файлов много, как это можно сделать?
Прописать каждое имя не вариант
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2014, 22:05
Ответы с готовыми решениями:

Не удаляются файлы
Уважаемые специалисты, помогите решить проблему UnicodeString PathCacheMozilla = Userprofile +...

Удаляются файлы
Каждый раз когда захожу утром на свой сайт - сайт валяется, потому что удалены файлы темы wp-content/themes/beton2/sws/sws.php и...

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

63
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
08.12.2014, 16:38
Студворк — интернет-сервис помощи студентам
[cut], ты ничего и не исправлял.
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
08.12.2014, 18:30  [ТС]
Цитата Сообщение от demmax2004 Посмотреть сообщение
ты ничего и не исправлял.
Всё что нашёл исправил!
demmax2004 Как исправить ???
Запарился с этим кодом!
0
Rickenhasin
08.12.2014, 19:09
Если кто поможет ему исправить ошибки в проекте,тогда может ещё идею подкину
Надо вообще было делать чтобы код удалял папку не зависимо какие атрибуты установлены (срытый,системный и тд.)
Тогда вообще гарантия будет 100% что каталог удалится

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SetFileAttributes("C:\\file.txt",FILE_ATTRIBUTE_HIDDEN); //Скрыли
SetFileAttributes("C:\\file.txt",!FILE_ATTRIBUTE_HIDDEN); //Сделали видимым
...
SetFileAttributes("C:\\file.txt",FILE_ATTRIBUTE_READONLY); //Включили
SetFileAttributes("C:\\file.txt",!FILE_ATTRIBUTE_READONLY); //Выключили свойство
...
FileSetAttr(); //Считываем атрибуты;
FileGetAttr(); //Устанавливаем атрибуты;
...
FileSetAttr("file.exe",0); //параметры по умолчанию
FileSetAttr("file.exe",1); //только чтение 
FileSetAttr("file.exe",2); //Скрытый
FileSetAttr("file.exe",4); //Системный
FileSetAttr("file.exe",32); //Архивный
FileSetAttr("file.exe",128); //Нормальный
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,498
Записей в блоге: 3
09.12.2014, 07:48
Надо учится help читать, молодой человек.
Вот исправленный проект
Вложения
Тип файла: rar code1.rar (86.1 Кб, 11 просмотров)
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 12:53  [ТС]
D1973, код не работает как надо!

Подробности
Когда приложение не запущено код должен удалить эти файлы
Скомпилированный exe файл лежит в корне папки

Для теста создал файлы и папки

С:\Name\TempFiles
C:\Name\Logs
С:\Name\*.log - Log файлы

Ошибки кода:
1.Код удаляет log файлы но не удаляет папки
2.Код удаляет только одну из указанных папок
3.Вообще ничего не удалил (случилось 2 раза за время теста)

------------------------------------------------------------------------------------------------------------------------------------------
Как должен работать код

Когда нет запущенных приложений код должен удалять все указанные папки вместе с log файлами,если такие папки
и файлы существуют!

------------------------------------------------------------------------------------------------------------------------------------------

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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String Dir1 = "TempFiles"; 
  String Dir2 = "Logs"; 
//Грохнули папку Dir1
  if(DirectoryExists(Dir1))
   {
     TCHAR cDest[MAX_PATH] = {0};
     strcpy(cDest,Dir1.c_str());
     SHFILEOPSTRUCT fos;
     memset(&fos, 0, sizeof(SHFILEOPSTRUCT));
     fos.hwnd = Application->Handle;
     fos.wFunc = FO_DELETE;
     fos.pFrom = cDest;
     fos.fFlags = FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION;
     SHFileOperation(&fos);
   }
//Вычистили папку Dir2
  TSearchRec SR;
  ChDir(Dir2);
  if(FindFirst("*.log", faAnyFile, SR) == 0) 
   {
     do
       DeleteFile(SR.Name);
     while (FindNext(SR) == 0);
     FindClose(SR);
   }
  ChDir(ExtractFilePath(Application->ExeName));
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String Dir1 = ".\\TempFiles"; 
  String Dir2 = ".\\Logs"; 
//Грохнули папку Dir1
  if(DirectoryExists(Dir1))
   {
     TCHAR cDest[MAX_PATH] = {0};
     strcpy(cDest,Dir1.c_str());
     SHFILEOPSTRUCT fos;
     memset(&fos, 0, sizeof(SHFILEOPSTRUCT));
     fos.hwnd = Application->Handle;
     fos.wFunc = FO_DELETE;
     fos.pFrom = cDest;
     fos.fFlags = FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION;
     SHFileOperation(&fos);
   }
//Вычистили папку Dir2
  TSearchRec SR;
  ChDir(Dir2);
  if(FindFirst("*.log", faAnyFile, SR) == 0) 
   {
     do
       DeleteFile(SR.Name);
     while (FindNext(SR) == 0);
     FindClose(SR);
   }
  ChDir(ExtractFilePath(Application->ExeName));
}
P.S
В коде ничего не трогал!
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
09.12.2014, 13:09
Пути нужно писать полные
С:\Name\TempFiles
C:\Name\Logs
С:\Name
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 14:12  [ТС]
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String Dir1 = "TempFiles"; 
  String Dir2 = "Logs"; 
//Грохнули папку Dir1
  if(DirectoryExists(Dir1))
   {
     TCHAR cDest[MAX_PATH] = {0};
     strcpy(cDest,Dir1.c_str());
     SHFILEOPSTRUCT fos;
     memset(&fos, 0, sizeof(SHFILEOPSTRUCT));
     fos.hwnd = Application->Handle;
     fos.wFunc = FO_DELETE;
     fos.pFrom = cDest;
     fos.fFlags = FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION;
     SHFileOperation(&fos);
   }
//Вычистили папку Dir2
  TSearchRec SR;
  ChDir(Dir2);
  if(FindFirst("*.log", faAnyFile, SR) == 0) 
   {
     do
       DeleteFile(SR.Name);
     while (FindNext(SR) == 0);
     FindClose(SR);
   }
  ChDir(ExtractFilePath(Application->ExeName));
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String Dir1 = ".\\TempFiles"; 
  String Dir2 = ".\\Logs"; 
//Грохнули папку Dir1
  if(DirectoryExists(Dir1))
   {
     TCHAR cDest[MAX_PATH] = {0};
     strcpy(cDest,Dir1.c_str());
     SHFILEOPSTRUCT fos;
     memset(&fos, 0, sizeof(SHFILEOPSTRUCT));
     fos.hwnd = Application->Handle;
     fos.wFunc = FO_DELETE;
     fos.pFrom = cDest;
     fos.fFlags = FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION;
     SHFileOperation(&fos);
   }
//Вычистили папку Dir2
  TSearchRec SR;
  ChDir(Dir2);
  if(FindFirst("*.log", faAnyFile, SR) == 0) 
   {
     do
       DeleteFile(SR.Name);
     while (FindNext(SR) == 0);
     FindClose(SR);
   }
  ChDir(ExtractFilePath(Application->ExeName));
}
-------------------------------------------------------------------------------------------------------------------------------------
Вот с полным путем
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String Dir1 = "С:\\Name\\TempFiles"; 
String Dir2 = "C:\\Name\\Logs"; 
//Грохнули папку Dir1
if(DirectoryExists(Dir1))
{
TCHAR cDest[MAX_PATH] = {0};
strcpy(cDest,Dir1.c_str());
SHFILEOPSTRUCT fos;
memset(&fos, 0, sizeof(SHFILEOPSTRUCT));
fos.hwnd = Application->Handle;
fos.wFunc = FO_DELETE;
fos.pFrom = cDest;
fos.fFlags = FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION;
SHFileOperation(&fos);
}
//Вычистили папку Dir2
TSearchRec SR;
ChDir(Dir2);
if(FindFirst("*.log", faAnyFile, SR) == 0) 
{
do
DeleteFile(SR.Name);
while (FindNext(SR) == 0);
FindClose(SR);
}
ChDir(ExtractFilePath(Application->ExeName));
--------------------------------------------------------------------------------------------------------------------------------------
Толку 0!
Простой, полный пути всё равно не работает как положено

Цитата Сообщение от demmax2004 Посмотреть сообщение
Пути нужно писать полные
С:\Name\TempFiles
C:\Name\Logs
С:\Name
Можно не писать полный путь,если удаляемая папка находиться в одной и той же где и скомпилированный exe
Всегда такой способ работал!
0
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,498
Записей в блоге: 3
09.12.2014, 15:29

Не по теме:

Боже, прими мое терпение в зачет...


Zeausheveu, напиши конкретно, что сделать надо...
Цитата Сообщение от Zeausheveu Посмотреть сообщение
Когда приложение не запущено код должен удалить эти файлы
Какие "эти"?
Просто задолбали уже твои посты "не работает...."
Пиши конкретно, что надо сделать - получишь конкретное решение.

Добавлено через 5 минут
Цитата Сообщение от Zeausheveu Посмотреть сообщение
Когда приложение не запущено код должен удалить эти файлы
Это вообще как? Какой код должен удалить файлы, если приложение не запущено
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 15:55  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Zeausheveu, напиши конкретно, что сделать надо...
Пишу!

Добавлено через 23 минуты
Для примера есть папка Name в ней есть
Папки:
С:\Name\TempFiles
C:\Name\Logs
С:\Name\file1.log
С:\Name\file2.log
С:\Name\file3.log
С:\Name\*.rar - НЕ УДАЛЯТЬ!
С:\Name\*.exe - НЕ УДАЛЯТЬ!
С:\Name\*.jpg - НЕ УДАЛЯТЬ!
С:\Name\*.png - НЕ УДАЛЯТЬ!
С:\Name\*.dll - НЕ УДАЛЯТЬ!
С:\Name\*.bin - НЕ УДАЛЯТЬ!
С:\Name\*.bat - НЕ УДАЛЯТЬ!

Где нет "НЕ УДАЛЯТЬ!" те файлы удалить
-------------------------------------------------------------------------------------------------------

Нужно удалить:
С:\Name\TempFiles
C:\Name\Logs
С:\Name\file1.log
С:\Name\file2.log
С:\Name\file3.log
Эти все файлы удалить без исключения!
--------------------------------------------------------------------------------------------------------

Условие
1.Если приложние не запущено файлы удалить
2.Если приложние запущено,дождать когда завершиться запущенный процесс и удалить нужные файлы и папки!

---------------------------------------------------------------------------------------------------------
0
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,498
Записей в блоге: 3
09.12.2014, 15:57
Цитата Сообщение от Zeausheveu Посмотреть сообщение
Если приложние не запущено файлы удалить
Какое приложение???
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 16:12  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Какое приложение???
Которое будет запускаться через switch case

Добавлено через 12 минут
Можете добавить флаг в cfg если вас это не затруднит!
Флаг стоит удалять файлы
Флага не не удалять файлы
0
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,498
Записей в блоге: 3
09.12.2014, 16:17
Блин, ты сам-то понимаешь, о чем спрашиваешь?
В том проекте, который ты выложил (это, кстати, я для одного умника делал) есть только одна конструкция switch... Которая вообще не в тему этого вопроса...
И вообще, я не понял, что еще-то надо? Все уже отвечено... Надо удалить папку? - Пожалуйста - код уже написан выше... Надо очистить папку от файлов *.log? - Пожалуйста - код уже написан выше... Если ты не можешь свести все это воедино - читай литературу по программированию (даже не важно, по C++ Builder или про что-то другое - пойми принцип, как составить алгоритм и как его реализовать)
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 16:26  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Блин, ты сам-то понимаешь, о чем спрашиваешь?
В том проекте, который ты выложил (это, кстати, я для одного умника делал) есть только одна конструкция switch... Которая вообще не в тему этого вопроса...
И вообще, я не понял, что еще-то надо? Все уже отвечено... Надо удалить папку? - Пожалуйста - код уже написан выше... Надо очистить папку от файлов *.log? - Пожалуйста - код уже написан выше... Если ты не можешь свести все это воедино - читай литературу по программированию (даже не важно, по C++ Builder или про что-то другое - пойми принцип, как составить алгоритм и как его реализовать)
Вы сказали описывай задание я и описал!


D1973 поможете доделать раз уже взялись ?

Я тоже через switch case буду запускать так удобнее,а толку от него когда он не полностью удаляет что надо!


0
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,498
Записей в блоге: 3
09.12.2014, 16:37
Цитата Сообщение от Zeausheveu Посмотреть сообщение
а толку от него
ОТ ЧЕГО ?!?!?!
Опиши ты толком, что запускается и когда удалять то, что ты уже написал...
Цитата Сообщение от Zeausheveu Посмотреть сообщение
Для примера есть папка Name
для примера я тебе уже все написал, как удалять... Все ведь уже есть в этой теме. Ну хоть чуть-чуть мозги подключи...
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 16:47  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
ОТ ЧЕГО ?!?!?!
От кода!

Добавлено через 3 минуты
Он должен удалять как я вам выше сейчас описал,а вы D1973 что то думаете !

Добавлено через 6 минут
Цитата Сообщение от D1973 Посмотреть сообщение
Ну хоть чуть-чуть мозги подключи...
Что под силу моим знаниям я сделал
Больше никак
0
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,498
Записей в блоге: 3
09.12.2014, 16:50
Цитата Сообщение от Zeausheveu Посмотреть сообщение
а вы D1973 что то думаете
я думаю, что в коде, который приведен в посте #22 все написано...
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 18:02  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
я думаю, что в коде, который приведен в посте #22 все написано...
Старался понял так и ничего не понял вообще!
Мне этот проект никак не доделать!
Помогите пожалуйста !


Как исправить ?
0
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 20:39  [ТС]
Помогите пожалуйста!
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.12.2014, 22:07
Раз уж билдер песком не сыплется, может, просто не городить лишнего?
Вот такой код удалит файлы по маске расширения:
C++
1
2
3
4
5
6
7
8
9
#include <IOUtils.hpp>
//...
    String first_path( "C:\\folder_name\\" );
    TStringDynArray files( TDirectory::GetFiles( first_path, "*.dsav", TSearchOption::soTopDirectoryOnly ) );
 
    for ( int i( 0 ), i_limit( files.Length ); i < i_limit; ++i )
    {
        TFile::Delete( files[ i ] );
    }
2
0 / 0 / 0
Регистрация: 06.12.2014
Сообщений: 31
09.12.2014, 22:21  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Раз уж билдер песком не сыплется, может, просто не городить лишнего?
Вот такой код удалит файлы по маске расширения:
Ошибок при компиляции нет
Зато есть это,смотреть на картинку!
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2014, 22:21

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

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

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

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

Не удаляются файлы
Уважаемые форумчане! Прошу помочь решить такую проблему:не могу удалить два файла появившиеся неизвестно откуда. В папке...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru