java Kann keine Datei löschen, wird von einem anderen Prozess verwendet
Habe ich diesen code
import org.apache.commons.io.FileUtils;
try {
FileUtils.copyURLToFile(new URL(SHA1_LINK), new File("SHA1.txt"));
if(!sameSha1()) {
System.out.println("sha diferentes");
FileUtils.copyURLToFile(new URL(LINK), new File(PROG));
}
} catch (Exception e) {
System.out.println("Internet is off");
}
//delete SHA1 file
Files.deleteIfExists(Paths.get("SHA1.txt"));
und wenn ich es ausführen es sagt
java.nio.Datei.FileSystemException
Der Prozess kann nicht auf die Datei zugreifen, da Sie von einem anderen Prozess (in der Sonne.nio.fs.WindowsException)
In der sameSha1()
habe ich dieses:
String sha1Txt = new Scanner(new File("SHA1.txt")).useDelimiter("\\Z").next();
Ich die Datei löschen wollen 'SHA1.txt'. Wie kann ich dies tun?
was ist mit dieser Datei, indem Sie es öffnen?
Können Sie sameSha1 Umsetzung?
Können Sie sameSha1 Umsetzung?
InformationsquelleAutor alexandre1985 | 2015-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, mit
sameSha1
Sie öffnenSHA1.txt
es zu Lesen und Sie vergessen, um es zu schließen.EDIT:
Aus deinem Kommentar, Sie enthalten die folgende Zeile in
sameSha1
:So erstellen Sie eine scanner-Instanz, aber Sie nicht explizit schließen. Sollten Sie so etwas tun:
Oder wie @HuStmpHrrr schlägt in Java 7:
String sha1Txt = new Scanner(new File("SHA1.txt")).useDelimiter("\\Z").next();
. Wie schließe ich es?weisen Sie new Scanner(...) in einer Variablen s und bevor Sie zurückkehren, rufen Sie
s.close()
Ah
sameSha1
Sie sagte. Guter Punkt @JuniorCompressor!verwenden Sie
try(Scanner s = new Scanner(new File("SHA1.txt")))
schließen der Datei automatisch.InformationsquelleAutor JuniorCompressor
Wenn es von einem anderen Prozess verwendet, ich vermute ein anderes Programm hat die text-Datei öffnen. Schließen Sie das andere Programm.
etwas ist eine Sperre auf es für sicher: der Ausnahme sagen, wie viel. Verwenden Sie einige Tools, um herauszufinden, was ist zu tun: technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Oder gehen Sie zu dem Verzeichnis, wo es gespeichert wird, eine Liste von versteckten Dateien und löschen Sie die Sperre selbst. In linux ist das ls-a, um zu zeigen Sie die Dateien, und entfernen Sie die eine, die die ~. Nicht sicher, ob es das gleiche für Windows, aber Sie können versteckte Dateien unter Ordner-Eigenschaften und finden Sie, wenn Sie die .lock-Datei.
InformationsquelleAutor Eric S.