Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732

Удаление файло :o

10.10.2011, 19:40. Показов 2867. Ответов 32

Студворк — интернет-сервис помощи студентам
Печальная проблема у меня.
Удаляю 3 файла на каждой итерации цикла
C++
1
2
3
4
5
6
        UnicodeString temp2 = path + "Temp.264";
        UnicodeString temp3 = path + "Temp.aac";
        UnicodeString temp1 = path + "Temp.avi";
        DeleteFile(temp1.w_str());
        DeleteFile(temp2.w_str()) ;
        DeleteFile(temp3.w_str());
Проблема в том, что какого то неизвестного мне фака, иногда допустим в удаление файла на 5 итерации, попадает переменная path с 6 итерации -> файл не удаляется, так как его там еще попросту нету. Собственно вопрос, как подождать пока файл будет удален и тогда аж переходить на следующую итерацию?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2011, 19:40
Ответы с готовыми решениями:

Загрузка файло на сервер .
Хотелось увидеть скрипт чтобы создавал когда загружал файлы папки по датам .. и грузил их в нужную папку если к примеру сегодня 31/08/2011 ...

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

Скрипт для лечения файло-ярлыкового вируса
Здравствуйте, уважаемые! В моей организации актуальна тема лечения флэшек от файлоярлыкового вируса. Какая команда сможет удалить все...

32
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.10.2011, 19:46
Цитата Сообщение от Flyer Посмотреть сообщение
Собственно вопрос, как подождать пока файл будет удален и тогда аж переходить на следующую итерацию?
А ты его порпобуй проверить через FileExists(), если он есть то удаляй, если нет тогда иди дальше
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.10.2011, 19:46
А попробовать перед удалением проанализировать:
C++
1
if (FileExists(..))   ...  ;
----------
Синхрон
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 19:53  [ТС]
дык нет, проблема в том, что путь с 6 итерации попадает в переменную в пятой и это меня слегка смущает
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.10.2011, 20:05
для чего столько проходов для удаления трех файлов ?
видимо, есть еще какой-нибудь код, а пока ваш вопрос выглядит так:
Как мне снести один и тот же дом шесть раз?
, а чтоб то-то не попадало туда-то - расставьте скобки {}.
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 20:12  [ТС]
for(блаблабла){


тут стираем
}
для каждой итерации нужно стереть 3 файла
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.10.2011, 20:14
все то же блаблабла ... как можно удалить один файл несколько раз ?
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 20:22  [ТС]
оке, чуть перефразирую,
на первой итерации 1 файл, на 2 другой и т.д.
то есть например
1 итерация temp1=Y:\wtf\temp.avi, temp2=Y:\wtf\temp.aac, temp3Y:\wtf\temp.264
2 итерация temp1=Y:\wtf2\temp.avi, temp2=Y:\wtf2\temp.aac, temp3Y:\wtf2\temp.264
3 итерация temp1=Y:\wtf3\temp.avi, temp2=Y:\wtf3\temp.aac, temp3Y:\wtf3\temp.264
4 итерация temp1=Y:\wtf4\temp.avi, temp2=Y:\wtf4\temp.aac, temp3=Y:\wtf4\temp.264
и т.д. . Все также считаешь это удаление одного и того же файла?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.10.2011, 20:27
я считаю, исходя из этого:
C++
1
2
3
4
5
6
                UnicodeString temp2 = path + "Temp.264";
                UnicodeString temp3 = path + "Temp.aac";
                UnicodeString temp1 = path + "Temp.avi";
                DeleteFile(temp1.w_str());
                DeleteFile(temp2.w_str()) ;
                DeleteFile(temp3.w_str());
, потому что здесь path один, а не
C++
1
2
3
4
path
path2
path3
path4
и что там у тебя - мне неведомо, а для последнего примера тебе умные люди посоветовали
C++
1
if (FileExists(..))
, или покажи реальный код, а не философтвование на тему
например ... итерация
, что предполагает такой же ответ, который придумывать мне лень.
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
10.10.2011, 20:34
LK,
Цитата Сообщение от LK Посмотреть сообщение
потому что здесь path один, а не
Код C++1
2
3 path1
path2
path3
Какая разница, может у него 1 путь к файле на пример:
C++
1
UnicodeString path = ExtractFilePath(Application->ExeName);
ето канечно ток пример, он может и на другом месте ишет файл, но если ети файлы в одном и в томже папке зачем Path1, Path2, Path3... и т.д ....
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 20:41  [ТС]
один path потому что он получается со стринг грида на каждой итерации цикла.
Скажи мне пожалуйста, как проверка на существование поможет мне?
Ну проверит оно на существование файлы по пути с 3 итерации будучи на 2, и что? Файлы то которые должны быть стерты на 2 итерации то все равно не будут удалены.
Например это не философствования, а только то что цифры 5 и 6 были для примера
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.10.2011, 20:54
Programmer., ты просто внимательней смори код:
1 итерация temp1=Y:\wtf\temp.avi, temp2=Y:\wtf\temp.aac, temp3Y:\wtf\temp.264
2 итерация temp1=Y:\wtf2\temp.avi, temp2=Y:\wtf2\temp.aac, temp3Y:\wtf2\temp.264
3 итерация temp1=Y:\wtf3\temp.avi, temp2=Y:\wtf3\temp.aac, temp3Y:\wtf3\temp.264
4 итерация temp1=Y:\wtf4\temp.avi, temp2=Y:\wtf4\temp.aac, temp3=Y:\wtf4\temp.264
вот и стринггрид всплыл .

Цикл десь зачем?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
AnsiString path_temp,path_temp1,path_temp2,path_temp3,file1,file2,file3;
 
path_temp = "Y:\\wtf\\";
path_temp2 = "Y:\\wtf2\\";
path_temp3 = "Y:\\wtf3\\";
path_temp4 = "Y:\\wtf4\\";
file1 = "temp.avi";
file2 = "temp.aac";
file3 = "temp.aac";
 
if (FileExists(path_temp+file1||path_temp+file2||path_temp+file3)) {
  DeleteFile((path_temp+file1||path_temp+file2||path_temp+file2));
}
if (FileExists(path_temp2+file1||path_temp2+file2||path_temp2+file3)) {
  DeleteFile((path_temp2+file1||path_temp2+file2||path_temp2+file2));
}
if (FileExists(path_temp3+file1||path_temp3+file2||path_temp3+file3)) {
  DeleteFile((path_temp2+file1||path_temp2+file2||path_temp2+file3));
}
if (FileExists(path_temp4+file1||path_temp4+file2||path_temp4+file3)) {
  DeleteFile((path_temp4+file1||path_temp4+file2||path_temp4+file3));
}
Схема, естественно, не для копипейста.
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
10.10.2011, 21:01
LK,
1 итерация temp1=Y:\wtf\temp.avi, temp2=Y:\wtf\temp.aac, temp3Y:\wtf\temp.264
2 итерация temp1=Y:\wtf2\temp.avi, temp2=Y:\wtf2\temp.aac, temp3Y:\wtf2\temp.264
3 итерация temp1=Y:\wtf3\temp.avi, temp2=Y:\wtf3\temp.aac, temp3Y:\wtf3\temp.264
4 итерация temp1=Y:\wtf4\temp.avi, temp2=Y:\wtf4\temp.aac, temp3=Y:\wtf4\temp.264
Ааааа воо, надо ему Path1 Path2 и т.д сделать...
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 21:19  [ТС]
Зачем, зачем мне надо пару переменных? Пробую объяснить.
Добавляем в очередь (стринг грид) через опер диалог файлы, к-тво которых не известно. В цикле обрабатывются эти файлы со стринг грида. Для каждой итерации свой path , который берется из строчки под номером итерации . В конце итерации три темп файла удаляются. Такой вариант как ты предложил не подходит.
Теперь попробую объяснить проблему, иногда, подчеркиваю иногда , в переменную path с текущей итерации попадает переменная со следующей итерации. Эта вся суть проблемы, не постоянное (иногда) попадание переменной со следующей итерации в текущую
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.10.2011, 21:32
C++
1
file3 ="temp.264";
Добавлено через 7 минут
C++
1
2
3
4
5
6
for(;;;) {
  Для каждой итерации свой path , который берется из строчки под номером итерации .
  if (FileExists()) {
    В конце итерации три темп файла удаляются.
  }
}
размусоливать тему на несколько страниц, с каждым разом добавляя все новую порцию условий - моветон, имхо.
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 21:50  [ТС]
Предлогаешь
C++
1
2
3
for(;;){
if(FileExists(temp1)) DeleteFile(temp1);
else break;}
Так чтоли? Я что то не уверен что в переменную path опять не попадет то, что должно попасть туда только в следуещей итерации? Можно как то подождать пока удалится файл и тогда аж перейти на следующую итерацию. Что то типа вейтфорсинглобджект?
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
10.10.2011, 22:12
Flyer,
Цитата Сообщение от Flyer Посмотреть сообщение
for(;{
тут лк ввыду имел твой цикл...
1
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 22:22  [ТС]
C++
1
for(;;){}
Есть бесконечный цикл насколько я знаю . И не уверен я что он не его имел ввиду
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.10.2011, 22:27
Цитата Сообщение от Flyer Посмотреть сообщение
не уверен что в переменную path опять не попадет то, что должно попасть туда только в следуещей итерации
пусть попадает, если файла нет - обрабатываться он не будет, а почему у тебя туда попадает то, чего еще нет, это к экстрасенсам
да, и
C++
1
for(;;;)
- это только намёк на твой цикл.
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
10.10.2011, 22:31  [ТС]
Пусть попадает это совсем не хорошо, тогда файлы останутся не потертым, что есть то самое что сейчас.
п.с. С каких пор 3 ; а не 2 в цикле то ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.10.2011, 22:31
Помогаю со студенческими работами здесь

Удаление текста после ALT+Enter либо удаление дублей в массиве
подзадача заключается в том, чтобы после определенного символа в моем случае это "ALT+Enter" удалить все слова внутри ячейки....

Как сделать закачку и удаление файлов, создание и удаление каталогов?
Как сделать закачку и удаление файлов, создание и удаление каталогов?

Здесь есть удаление столбца, как добавить удаление строки
#include <iostream> #include <conio.h> using namespace std; int main() { int n; do {cout << "Razmer massiva: "; cin >> n;...

Лечение или удаление вируса Drive.bat - Удаление вирусов
Здравствуйте. Помогите пожалуйста. Словил на флешку этот Driver.bat, который создает ярлыки. Еще и перекинул все на комп. Пробовал...

Удаление загрузочной записи о Windows8.1 и удаление самой Windows 8.1 при наличии двух ОС
На ноутбуке на разделе C Windows XP ,установил Windows 8.1 на логический раздел E.Теперь хочу удалить 8.1 и установить туда 7.В БИОСе...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru