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

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

10.10.2011, 19:40. Показов 2873. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru