Факты:
Когда файл перемещается, есть две возможности:
- Исходный и целевой файлы находятся в одном разделе, и обновляется только индекс файловой системы.
- Источник и место назначения находятся в двух разных файловых системах, и файл необходимо перемещать байт за байтом. (ака копирование на ходу)
Вопрос:
Как я могу определить, будет ли файл перемещен логически или физически?
Я передаю большие файлы (700+ мегабайт) и буду вести себя по-разному для каждой ситуации.
Редактировать:
Я уже закодировал диалог перемещения файла с рабочим потоком, который выполняет блокирующий вызов ввода-вывода для копирования файла по мегабайту за раз. Он предоставляет пользователю такую информацию, как приблизительная оценка оставшегося времени и скорости передачи.
Проблема в том, как узнать, можно ли переместить файл логически, прежде чем пытаться переместить его физически?