Hallo zusammen,
ich habe einen Notes Agent in Java (für einen Server) geschrieben der alle Dateien aus dem Verzeichnis "C:\temp\in\" in das Verzeichnis "C:\temp\archiv\" verschieben soll.
Wenn ich bspw. 5 Dateien habe, werden die ersten 4 Dateien sauber verschoben, dagegen wird die letzte nicht verschoben.
Wenn ich das gleiche Programm lokal in Eclipse ausführe, läuft es einwandfrei.
Ausgabngssituation:
1. Alle Verzeichnisse sind vorhanden
2. das Verzeichnis "Archiv" ist leer.
3. im verzeichnis "in" sind Dateien vorhanden
filepathArchiv = "C:\\temp\\Archiv\\";
filepathIn = "C:\\temp\\in\\";
if (new File(filepathArchiv).isDirectory() && new File(filepathIn).isDirectory()) {
File verzeichnis = new File(filepathIn);
if (verzeichnis.isDirectory()) {
String[] fileNames = verzeichnis.list();
for (int i = 0; i < fileNames.length; i++) {
File source = new File(filepathIn + fileNames[i]);
File destination = new File(filepathArchiv + fileNames[i]);
if (!source.renameTo(destination)) {
System.err.println("Fehler beim Umbenennen der Datei: " + source.getName());
}
}
}
}
Kann mir dabei jemand helfen ?
Vielen Dank !
Beste Grüße
Johannes
if (!source.renameTo(destination)) {
System.err.println("Fehler beim Umbenennen der Datei: " + source.getName());
}
der obenstehende Code ist meiner meinung nach das Problem.
> Ja, der System Error wird ausgegeben....
Das Problem lag nicht an dem Agenten, sondern an einem Anderen der diese Dateien vorher im Zugriff hatte.
Somit hatte der Agent keinen Fehler. Ich habe es jetzt in einen Lotus Script geändert:
Dim directory As String ' Verzeichnis
Dim allFiles List As String ' alle Dateinamen
Dim lastFile As String ' letzter Dateiname
Dim fileName As String ' aktueller Dateiname
directory = "C:/temp/" ' auszulesendes Verzeichnis
fileName = Dir$(directory, 0) ' einlesen der erste Datei
Do While fileName <> "" ' wiederhole solange der Name nicht ""
allFiles(fileName) = fileName ' Liste mit allen Dateinamen
lastfile = fileName ' speicherung der letzten Datei
fileName = Dir$ ' holen der nächsten Datei
If fileName = lastFile Then ' wenn der neue Dateiname dem alten entspricht
Exit Do ' -> Schleife beenden
End If
Loop
' Auslesen mit ForAll
ForAll names In allFiles
' hier kommt der Code mit dem Dateinamen in der Variable 'names'
End ForAll