|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.08.2018, 09:47 | #11 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А если переименование выбросить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
08.08.2018, 09:54 | #12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
100% какая-то буферизация вредит...
три вопроса. 1) если поставить после s.Flush(); s.Close(); открытие потока и попытаться прочитать несколько байт - это будут новые значения или старые? (можно их выдать в консоль для отладки) 2) если удалить блок переименования - поведение как-то изменится? 3) как ГРОМАДНЫЕ костыли, можно сделать цикл и в нём делать маленькую паузу ( минимально возможную), открывать поток, читать из него и закрывать, цикл крутить пока считанное значение не изменится (несколько байт оригинального файла предаварительно нужно запомнить) (кстати, для отладки можно подсчитать, сколько циклов для этого понадобится). |
08.08.2018, 10:03 | #13 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Гугл нагуглил 2 похожих вопроса, где предлагается либо ждать с Exists + Sleep и т.п., либо копировать данные самому.
https://stackoverflow.com/questions/...-a-file-delete https://stackoverflow.com/questions/...ove-completion
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
08.08.2018, 13:03 | #14 | |
Пользователь
Регистрация: 12.12.2017
Сообщений: 11
|
Цитата:
Если удалить функцию удаления - то так же все будет хорошо. (то есть после s.Close(); содержимое файла меняется всегда, возможно к буферизации здесь нет вопросов). Содержимое файла всегда заменяется мусором. А вот если СРАЗУ после этого удалить файл, и затем восстановить Recuva - то файл будет в исходном варианте, как до удаления. Если восстанавливать файл, удаленный после 3х секундной паузы перед удалением(эмпирически вывел, 2х секунд еще мало) - то все снова опять хорошо, файл набит случайной гаммой. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кто разъяснит почему так происходит с функцией JS | DimaDR | JavaScript, Ajax | 4 | 15.11.2017 18:17 |
Мистика какая то, срочно прошу помощи знающих | websaco | Visual C++ | 0 | 28.04.2014 16:44 |
Цикл Cardinal - почему так происходит? | Nester | Общие вопросы Delphi | 2 | 28.07.2010 15:04 |
Form Region-почему так происходит | Nester | Общие вопросы Delphi | 3 | 14.09.2009 21:16 |
Почему так происходит? | Zeraim | Общие вопросы Delphi | 1 | 05.05.2008 14:10 |