Когда удаленная копия перезаписывается с локальной копией, размер файла отличается?

Когда я перезаписываю удаленный файл с локальной копией, FileZilla успешно передает и перезаписывает файл, но я замечаю, что новый удаленный размер копии - немногие КБ, меньший, чем фактическая локальная копия. Почему это происходит?

3
задан 22.10.2009, 10:44

4 ответа

Возможно, это связано с различием между "Размером" и "Размером на диске":

Размер является фактическим размером файла в байтах.
Размер на диске является фактической суммой пространства, поднимаемого на диске.

Так, если Ваш размер сектора составит 512 байтов, и Ваш файл - на самом деле 513 байтов, то размер на диске составит 1 024 байта, потому что он занимает два сектора.

Поскольку другой O/S или диски могут использовать различные размеры сектора, если размер, о котором сообщают, будет "Размером на диске", то затем размеры будут отличаться.

4
ответ дан 07.12.2019, 22:53

meder относится, я думаю к отличающимся концам строки между Linux и Windows. В то время как *ОТКЛОНЯЕТ использование только один символ (ASCII 10) для разрыва строки, Windows использует 2 (ASCII 13 + ACII 10).

Программы FTP обычно имеют режим "Text transfer" или "ASCII transfer" (по сравнению с режимом "Binary transfer"), который автоматически преобразовывает эти символы при необходимости.

Так, если Ваш файл имеет 1 000 строк, это на 1 КБ больше на Win, чем на *, ОТКЛОНЯЮТ системы.

В Filezilla можно определить режим передачи через Transfer-> Transfer Mode в строке меню.

Могла быть другая причина, о которой я могу думать, хотя это очень невероятно. При вычислении Килобайтов можно установить 1 КБ = 1 024 байта (единица СИ), или можно установить 1 кибибит = 1 000 байтов (единица IEC, отметьте "Ki" вместо "k"). Это также приведет к отличающимся размерам, но во всех случаях я знаю, что размеры вычисляются то же с обеих сторон соединения.

7
ответ дан 07.12.2019, 22:53

Если бы сервером является другая ОС затем, это было бы то, почему (например, сервер = Linux, локальный = Windows). Или могло случиться так, что некоторые байты были уничтожены, ли Вашим выполнением или Вашим текстовым редактором (пробел обрабатывается по-другому различными редакторами). Это было бы достойным предположением, на самом деле не видя разность между ними.

2
ответ дан 07.12.2019, 22:53

Я заметил это несоответствие при копировании файлов от подобной Unix системы ДОМЕНА/ОС до Windows, но так как я всегда использую двоичную передачу (даже с текстовыми файлами), я должен был в другом месте искать объяснение.

Я заметил, что в моей системе, исходный размер файла выражается в целом количество буферов: кратные числа 32 КБ, и что, когда файл передается, только фактические байты файла считаются.

Но я использую странную, старинную систему, и я думаю, что объяснение meder, более вероятно, будет корректно.

1
ответ дан 07.12.2019, 22:53

Теги

Похожие вопросы