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

1078
RPK

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

3

4 ответа на вопрос

7
Boldewyn

Я полагаю, что meder относится к различным концам линий между Linux и Windows. В то время как * NIX используют только один символ (ASCII 10) для перевода строки, Windows использует 2 (ASCII 13 + ACII 10).

Программы FTP обычно имеют режим «Передача текста» или «Передача ASCII» (по сравнению с режимом «Двоичная передача»), который автоматически конвертирует эти символы при необходимости.

Таким образом, если ваш файл имеет 1000 строк, он больше на 1 КБ в Win, чем в системах * NIX.

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

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

Режимы передачи обычно называются режимом ASCII и двоичным режимом. И вряд ли когда-либо есть причина использовать режим ASCII. Joachim Sauer 14 лет назад 0
Я согласен, если вы не используете Блокнот Windows `* shiver *`. Boldewyn 14 лет назад 1
4
harrymc

Возможно, это связано с разницей между «Размер» и «Размер на диске»:

Размер - это фактический размер файла в байтах.
Размер на диске - это фактический объем места, занимаемого на диске.

Таким образом, если размер вашего сектора составляет 512 байт, а размер файла - 513 байт, размер на диске составит 1024 байт, поскольку он занимает два сектора.

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

2
meder omuraliev

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

1
pavium

Я заметил это несоответствие при копировании файлов из Unix-подобной системы DOMAIN / OS в Windows, но, поскольку я всегда использую двоичную передачу (даже с текстовыми файлами), мне пришлось искать объяснение в другом месте.

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

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

Хм, твой ответ пришел, пока я написал расширение для моего. Случаи связаны, я думаю. Boldewyn 14 лет назад 0

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