Портит файл при копировании Topic is solved

Здесь можно сообщить о найденных багах в Far.
Nicko
Posts: 4
Joined: Sat 27 Jul, 2019 14:19

Портит файл при копировании

Post by Nicko »

Latest post of the previous page:

Жаль, что на этом форуме нельзя (или я не нашёл как) редактировать сообщения.

1) Дефрагментатор вообще не дружит с распределёнными файлами, а не только плохо скопированными.

2) В Total Commander была поддержка распределённых файлов, но много лет назад автор отказался от собственных функций копирования и стал использовать CopyFileEx. Не смотря на это, в HELPе TC указано, что:
Use default method only
The default built in copy method (via ReadFile/WriteFile) is relatively slow, but also reliable.
3) Попробовал проделать все операции с файлом размера 5 Гбайт, а не 20-40 Мбайт, и ничего подобного смоделировать не мог. Возможно, что это связано с размерам блока самого торрента и работой uTorrent.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Портит файл при копировании

Post by DrKnS »

Nicko, если вы считаете, что копирование sparse-файлов работает неправильно, приведите минимальный пример, воспроизводящий проблему.
Без торрентов, дефрагментаторов, оптимизаторов и экскурсов в историю более других менеджеров.
Nicko
Posts: 4
Joined: Sat 27 Jul, 2019 14:19

Портит файл при копировании

Post by Nicko »

Я, скорее, описывал ситуацию и хотел с вашей помощью разобраться - что же происходит, чем сообщал о неправильной работе.

Ситуация такова: uTorrent каким-то чудесным образом записывает неполные блоки в файл и fsutil sparse query выдаёт регион, содержащий эти данные, хотя он, наоборот, должен быть пустым. Копирование и доступ к файлу чем угодно, не поддерживающим распределённые файлы, переносит эти данные в новый файл, который уже не является распределённым. Об этом и писал автор темы.

К сожалению, попытки установить регион, используя fsutil или sparser.exe, убирают эти данные из файла - я не могу вам передать файл и смоделировать ситуацию.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Портит файл при копировании

Post by DrKnS »

Насколько я понимаю:
- При копировании sparse-файлов в общем случае не гарантируется, что они остантутся sparse (но Far пытается, при отключенной системной функции)
- Сохранение позиций и размеров allocated ranges при копировании не гарантируется. Мы читаем их из исходного файла и пишем в новый, но ОС может переаллоцировать так, как ей удобнее, при первом доступе к файлу.
- fc /b не должно находить различий при условии, что в файлы больше никто не пишет.
Post Reply

Return to “Глюки и баги”