2012-06-19 3 views
0

Я пытаюсь открыть zip-файл с помощью jython с помощью FileInputStream и ZipInputStream. Но я странно получаю исключение FileNotFoundException, когда вызывается FileInputStream.jython открыть zip-файл и прочитать его содержимое

Вот мой код:

from java.lang import System 
from java.io import ObjectInputStream, FileInputStream, BufferedInputStream 
from java.util.zip import ZipInputStream, ZipEntry 


file_input_stream = FileInputStream('C:\\Documents and Settings\\usr\\My Documents\\Downloads\\test.zip') 
zip_input_stream = ZipInputStream(BufferedInputStream(file_input_stream)) 

entry = zip_input_stream.getNextEntry() 
entry = zip_input_stream.getNextEntry() 

object_input_stream = ObjectInputStream(zip_input_stream) 
graph.model = object_input_stream.readObject() 

object_input_stream.close() 
zip_input_stream.close() 
file_input_stream.close() 

Моя ошибка:

file_input_stream = FileInputStream('C:\\Documents and Settings\\usr\\My Documents\\Downloads\\test.zip') 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
FileNotFoundException: java.io.FileNotFoundException: C:\Documents and Settings\usr\My Documents\Downloads\test.zip (The system cannot find the file specified) 

Я знаю, что файл находится в правильном каталоге, если я позвоню FileInputStream с непостоянным архива , оно работает. Что я здесь делаю неправильно?

благодарит

+0

Это не случайно проблема, вызванная отсутствием расширений файлов, не так ли? Вы или нет, показываете расширения файлов в проводнике? – Wug

+0

@Wug Я могу видеть расширение для этого zip-файла, но не все файлы в проводнике имеют расширение своего файла. – mugetsu

ответ

1

Открыть любую папку в проводнике Windows. Если вы используете Windows 7 или Vista, нажмите alt, чтобы просмотреть панель меню (на XP она уже должна быть видна). Выберите Инструменты -> Параметры папки. На вкладке «Вид» найдите в поле флажок «Скрыть расширения для известных типов файлов» и снимите флажок.

На этой заметке файл, вероятно, называется «test.zip.zip», поэтому «test.zip» не найден.

+0

Да, это было именно так, спасибо! – mugetsu

0

Вы знаете, что вы могли бы использовать Python zipfile библиотеку для этого, в вашем коде Jython.

+0

Его оболочка не показывает расширения файлов, поэтому файл на самом деле называется test.zip.zip. – Wug

+0

Я вас не сомневаюсь. Просто предлагая, чтобы более простой код мог быть написан с использованием библиотеки Python, чем Java API. – sudocode

Смежные вопросы