Я загружаю zip-файл из Интернета и получаю его в виде простой текстовой строки. Теперь я хочу сохранить это на диск, но как мне преобразовать эту текстовую строку в файловый буфер? Что нужно сделать, чтобы эту строку можно было использовать в функции записи файловой системы?

РЕДАКТИРОВАТЬ:

Проблема, когда я записываю данные непосредственно на диск, заключается в том, что zip-файл поврежден.

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

Первые 5 строк файлов:

The new created file as binary:
504b 0304 1400 0200 0800 47fd 3a3d 3efd
fd57 fd5b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 fdfd 7758 fd4b
1738 fdfd fdfd 2424 fa63 fdfd 4140 fd45
5a30 4840 6a28 2140 0811 1240 050c fd05

The new created file as utf8:
504b 0304 1400 0200 0800 47ef bfbd 3a3d
3eef bfbd efbf bd57 efbf bd5b 0000 006a
0000 0c00 0000 6963 6f6e 7365 7874 2e65
7865 efbf bdef bfbd 7758 efbf bd4b 1738
efbf bdef bfbd efbf bdef bfbd 2424 f48e


Original noncorrupted file from the internet:
504b 0304 1400 0200 0800 4799 3a3d 3eae
b857 865b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 edfd 7758 934b
1738 8abe e981 2424 f48e a1a3 b4d0 4140
e945 5a30 4840 6a28 2140 0811 1240 050c

2 ответа2

0

Таким образом, я нашел решение, сначала преобразовав строку в Uint8, а затем преобразовав ее в файловый буфер, который я затем смог сохранить.

0

Почему вы не можете просто скачать файл?

Если вы настаиваете на загрузке потока, просто перенаправьте то, что вы получаете в файл, так:

* Никс:

output_of_download_command > /path/to/file_name.zip

Окна:

output_of_download_command > c:\path\to\file_name.zip

Имейте в виду, у вас может быть некоторая дополнительная информация до и / или после фактической строки! Не зная точно, что вы делаете, невозможно дать конкретную команду, но вы можете перенаправить все ошибки в другое место:

Пожалуйста, смотрите здесь:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .