Некоторые файлы были загружены в неправильном режиме на FTP (через командную строку). Я полагаю, что у меня есть некоторые двоичные файлы, которые были загружены в Текстовом режиме, и теперь я не могу открыть их.
У меня нет доступа к исходным файлам, я могу так или иначе восстановиться с этого? Есть ли некоторый инструмент, который позволит мне получать файлы в их правильном формате?
Я недавно должен был столкнуться с той же проблемой. Linux-> Windows, режим ASCII. Я закончил писать программу в Python, который допускает восстановление переданных двоичных файлов ASCII. Это - байт bruteforcer и здесь - как это работает:
Количество возможного допустимого 0d 0a пары байта в двоичном файле не будет очень высоко; вероятность двоичного файла, имеющего допустимый 0d 0a пара, является довольно низкой. Время, которое архив bz2 занимает для фиксации с этим методом "в лоб", младше 10 секунд для файлов менее чем 100 КБ. Я не проверил его с другими типами файлов, но это возможно.
Я не собираюсь вставлять код здесь, так как этот вопрос не программирует связанный, и это было своего рода задачей конкуренции, и я не думаю, что я доволен взятием исходной общественности, но если Вы действительно требуете его, сообщите мне.
С наилучшими пожеланиями, и С Рождеством все!:)
Знание, возможно ли отменить разрушение, требует знания включенных операционных систем. Последствия зависят от того, какую комбинацию операционных систем Вы используете на сервере и клиенте.
Худшей проблемой является символ конца строки. Windows использует возврат каретки (значение ASCII 13) сопровождаемый переводом строки (значение ASCII 10), в то время как Linux использует только перевод строки.
Текстовый режим передача FTP переводит это. Режим двоичного счета не делает. Который является, где разрушение входит.
Если бы передача пошла от Windows до Linux, то было бы невозможно определить, был ли LF первоначально LF или комбинацией CR-LF. Поскольку данные потеряны, отменение разрушения почти невозможно.