![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А если переименование выбросить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
100% какая-то буферизация вредит...
три вопроса. 1) если поставить после s.Flush(); s.Close(); открытие потока и попытаться прочитать несколько байт - это будут новые значения или старые? (можно их выдать в консоль для отладки) 2) если удалить блок переименования - поведение как-то изменится? 3) как ГРОМАДНЫЕ костыли, можно сделать цикл и в нём делать маленькую паузу ( минимально возможную), открывать поток, читать из него и закрывать, цикл крутить пока считанное значение не изменится (несколько байт оригинального файла предаварительно нужно запомнить) (кстати, для отладки можно подсчитать, сколько циклов для этого понадобится). |
![]() |
![]() |
![]() |
#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
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#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 |