Ich versuche, Dateien mit JAVA zu entpacken und es kompiliert ohne Fehler. Wenn ich es von meinem Werkzeug nenne, und absoluten Zielpfad und Quellpfad der Datei zB geben: Quelle: D: \ data \ test.zip Destination: D: \ data \ op \Zip-Datei mit JAVA-ZipFile-Klasse entpacken
ich immer bin Fehler wie Acess verweigern
Stack-Trace (I Admin Zugang von System):
Extrahierung: Test/neuen Textdokument - Kopie (2) .txt java.io.FileNotFoundException: D: \ Data \ Op (Zugriff verweigert) unter java.io.FileOutputStream.open (Native Method) unter java.io.FileOutputStream. (FileOutputStream.java:179) bei java.io.FileOutputStream. (FileOutputStream.java:70)
Unten ist die Funktion, die ich nennen werde, ich glaube, es zu tun hat mit Ziel, da es möglicherweise nicht zum absoluten Pfad extrahiert wird, sondern ein temporärer Ordner, in den es nicht schreiben kann. Ich habe versucht, eine Kombination auf dem Ziel, aber nicht funktioniert von meinem Ende. Bitte führen Sie mich, wie wir es beheben können.
public void unzip(String zipFilePath, String destDir, String flName) throws Exception
{
int BUFFER = 2048;//Buffer Size
try
{
File dir = new File(destDir);
// Throw Exception if output directory doesn't exist
if(!dir.exists())
{
//Print Message in Consol
System.out.println("No Destination Directory Exists for Unzip Operation.");
throw new Exception();
}
BufferedOutputStream dest = null;
BufferedInputStream is = null;
ZipEntry entry;
ZipFile zipfile = new ZipFile(zipFilePath);
Enumeration e = zipfile.entries();
while(e.hasMoreElements())
{
entry = (ZipEntry) e.nextElement();
System.out.println("Extracting: " +entry);
is = new BufferedInputStream (zipfile.getInputStream(entry));
int count;
byte data[] = new byte[BUFFER];
FileOutputStream fos = new FileOutputStream(destDir);
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = is.read(data, 0, BUFFER)) != -1)
{
dest.write(data, 0, count);
}
//Close All Streams
dest.flush();
dest.close();
is.close();
}
}
catch(Exception e)
{
e.printStackTrace();
throw new Exception();
}
}
Führen Sie die App über die Befehlszeile? Dann starte 'cmd' als admininitrator – Jens
Ich rufe es von einem Tool, das mit admin pretrilages läuft :) – SOAMad