powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Прерывание CopyFile
22 сообщений из 22, страница 1 из 1
Прерывание CopyFile
    #39754163
m52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

Копирую файл с помощью CopyFile . В отличии от функции CopyFileEx, прервать CopyFile нельзя, но я хочу использовать именно CopyFile. Чтобы можно было прервать процесс копирования, я обернул ф-цию CopyFile в отдельный поток Thread и в случае отмены копирования просто уничтожаю Thread. Таким образом процесс копирования прерывается.

Проблема : при уничтожении Thread копируемый файл остается заблокированным. С файлом ничего нельзя сделать (ни удалить, ни переименовать), пишет что он занят другим приложением. Как не выгружая программу прибить поток, чтобы копируемый файл стал свободным?
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754183
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Доктор, когда я вот вот так вот делаю у меня болит

- А вы вот вот так вот не делайте
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754184
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С прошлой аналогичной темы так ничему и не научился? Своё "хочу использовать именно
CopyFile" засунь куда подальше, наступи на горло собственной песне, подави ЧСВ и таки
используй CopyFileEx.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754190
m52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за типовые советы, забыл написать, чтобы CopyFileEx не предлагали.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754199
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52,
Перезапустить свою программу, именно она и держит файл.
Делаешь дамп всей памяти, перезапускаешь и восстанавливаешь.
Второй вариант - влезть в ядро винды и добраться до таблицы залоченных файлов.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754200
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52,

милейший, а почему вы новые темы создаете, а не продолжаете старые?
Вы тролль.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754211
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52Спасибо за типовые советы, забыл написать, чтобы CopyFileEx не предлагали.Фэйтл Эраm52,
Вы тролль."Не толстый, а упитанный "(ц).
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754221
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используя copyfile с прибитием потока невозможно освобождение ресурсов. Если ресурсы освободить нельзя то и файл будет заблокирован до закрытия процесса. Ваше пожелание невозможно выполнить.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754225
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52,

Здесь смотрели? Или здесь ?
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754231
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

он 2 года уже с этим мучается
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754234
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52,

за два года можно написать свою CopyFile :) с бустом и исключениями (на самом деле там работы на час максимум).
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754235
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жёваный крот.

А нельзя было зайти в CopyFile и увидеть, что она просто вызывает CopyFileEx с обнулёнными дополнительными параметрами, а последний параметр CopyFile преобразуется в флаг COPY_FILE_FAIL_IF_EXISTS??

Kernel32.CopyFile:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
mov edi,edi
push ebp
mov ebp,esp
xor eax,eax
cmp [ebp+$10],eax
setnz al
push eax
xor eax,eax
push eax
push eax
push eax
push dword ptr [ebp+$0c]
push dword ptr [ebp+$08]
call $73b77110 // Kernel32.CopyFileEx
pop ebp
ret $000c
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754240
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteИспользуя copyfile с прибитием потока невозможно освобождение ресурсов. Если ресурсы освободить нельзя то и файл будет заблокирован до закрытия процесса. Ваше пожелание невозможно выполнить.
Можно запускать копифайл в отдельном приложении. И у бивать не тред, а процесс. Костылики, на счастье топикстартеру.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754265
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл Эра,

можно вообще 'copy' в консоли вызывать
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754282
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokerА нельзя было зайти в CopyFile и увидеть, что она просто вызывает CopyFileEx с обнулёнными дополнительными параметрами, а последний параметр CopyFile преобразуется в флаг COPY_FILE_FAIL_IF_EXISTS??От ведь стервец! Всю интригу ТС-у обломал!
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754285
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerGunSmokerА нельзя было зайти в CopyFile и увидеть, что она просто вызывает CopyFileEx с обнулёнными дополнительными параметрами, а последний параметр CopyFile преобразуется в флаг COPY_FILE_FAIL_IF_EXISTS??От ведь стервец! Всю интригу ТС-у обломал!
ТС пофиг, ему это уже говорили.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754341
Beltar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.gunsmoker.ru/2008/10/x-y-z.html

Да и автор этой саги, смотрю, тоже здесь.
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754595
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пользуй SHFileOperation
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754665
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисm52,
Перезапустить свою программу, именно она и держит файл.
Делаешь дамп всей памяти, перезапускаешь и восстанавливаешь.
Второй вариант - влезть в ядро винды и добраться до таблицы залоченных файлов.
Ну зачем так сложно.
Можно написать свою функцию CopyFile, в ней - вызывать CopyFileEx.
И дальше можно спокойно использовать эту CopyFile, которую уже можно прервать. Проблема решена ;)
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754680
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockНу зачем так сложно... Мы не ищем легких путей.
ТС будет чем заняться, у нас повод повеселиться, лепота...
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39754745
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

Привет, дорогой. Мне кажется, от такого веселья бужущее ужасно, отнюдь, не лепота...
...
Рейтинг: 0 / 0
Прерывание CopyFile
    #39755065
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator,
Привет-привет, с наступающим!

Save tomorrow for tomorrow, think about today instead. (c)
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Прерывание CopyFile
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]