Ich versuche, eine Datei mit dem folgenden Code zu kopieren:Was sind mögliche Gründe für java.io.IOException: „Der Dateiname, Verzeichnisname oder Datenträgerbezeichnung ist falsch“
File targetFile = new File(targetPath + File.separator + filename);
...
targetFile.createNewFile();
fileInputStream = new FileInputStream(fileToCopy);
fileOutputStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[64*1024];
int i = 0;
while((i = fileInputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, i);
}
Für einige Benutzer die targetFile.createNewFile
Ergebnisse in dieser Ausnahme:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:850)
Dateiname und Verzeichnisnamen scheinen korrekt zu sein. Das Verzeichnis targetPath
wird sogar die Existenz überprüft, bevor die Kopie Code ausgeführt wird und der Dateiname wie folgt aussieht: AB_timestamp.xml
Der Benutzer muss die targetPath
Berechtigungen schreiben und die Datei ohne Probleme mit dem O kopieren.
Da ich keinen Zugriff auf eine Maschine habe, passiert dies noch und kann das Problem nicht auf meiner eigenen Maschine reproduzieren. Ich wende mich an Sie, um Hinweise auf den Grund für diese Ausnahme zu erhalten.
Die API sagt eigentlich, dass es keine IOException auslösen wird, wenn die Datei bereits existiert, aber in diesem Fall einfach false zurückgibt. – Turismo