2010-06-22 5 views
1

try {problème android dans l'extraction de fichier zip en utilisant ZipFile

File f = new File("/data/cizip.zip"); 
if(f.exists()){ 
    ZipFile zf = new ZipFile(f); //this always throws an error 
/*some of my codes here*/ 
} 
catch(IOException e){ 
    AlertDialog.Builder abd = new AlertDialog.Builder(this); 
    abd.setMessage(e.getMessage()); 
    abd.show(); 
} 

la ligne ZipFile zf = new ZipFile(f); jette toujours une erreur et je ne sais pas pourquoi. Et le message d'erreur est le nom de fichier ("/data/cizip.zip"), donc je ne peux pas connaître la cause de l'erreur. Quelqu'un peut-il me dire s'il vous plaît ce qui provoque cette erreur? Merci d'avance.

+0

si 'getMessage()' ne renvoie pas assez d'informations, vous pouvez vouloir examinez l'exception de plus près, avec 'printStackTrace()' par exemple - et vérifiez également le logcat. – Joubarc

Répondre

2

Ceci est juste une supposition, mais peut-être le fichier est en cours d'utilisation (verrouillé)? Je ne vois rien d'anormal dans votre code ...

+0

ok .. mais qu'est-ce qui le rend verrouillé? Je ne l'utilise pas/l'ouvre. Au fait, je n'utilise qu'un émulateur. – junmats

+1

convenu, il ne serait pas mal de tester si le fichier peut être lu avec 'canRead()' en plus de 'exists()' – Joubarc

+0

@Joubarc: J'ai suivi votre suggestion et en mettant la condition canRead(), il en résulte à faux . Cela signifie-t-il qu'il est verrouillé? Mais pourquoi? Je ne comprends pas pourquoi mon fichier zip est verrouillé car je ne l'utilise pas. – junmats

0

Votre application ne dispose pas d'autorisations de lecture/écriture directement dans le répertoire/data /. Vous devez utiliser soit le sous-dossier correct "/ data/data/votre.program.package /" ou simplement le "/ sdcard /"

Questions connexes