Ich habe das folgende Problem: Ich möchte FTP-Komponente verwenden, um zu lesen und dann Dateien zusammen mit Pfaden relativ zum FTP-Home-Verzeichnis zu schreiben. Dafür verwende ich recursive = true im Frühjahr und es funktioniert gut. Das Problem ist, dass ich auch TempFileName verwenden, aber in der Zielposition * tmp-Dateien als $ {file: onlyname.noext} erstellt .tmp nicht im Zielverzeichnis gespeichert werden kann, aber im Hause direcotry dh wenn Quelle:Apache-Kamel-Datei-Komponente rekursiv und tempFileName
A
|-> B
|-> C
|->file.txt
sollte das Ziel sein: arbeiten bezogen auf den Pfad
A
|->file.tmp (temporary)
|-> C
|->file.txt (file.tmp cannot be stored here!)
Allerdings scheint TempFileName nur zu sein. Kann das geändert werden?
an das endgültige Ziel des Verzeichnisses C wurde im Verzeichnis A gespeichert wird verschoben werden Versuchen Sie, 'tempFileName = ../$ {file: onlyname.noext}' zu setzen. Und siehe mehr Details in der Datei-Sprache: http://camel.apache.org/file-language.html –
Hallo Claus. Vielen Dank für Ihre Antwort. Dies ist in der Tat das erste, was ich getan habe, aber es funktioniert nicht. Die Dateisprache funktioniert gut, aber das Problem ist, dass './' immer relativ zum vollständigen Namen der Datei ist, d.h. einschließlich des Pfades als rekursiv gesetzt ist. Wenn der rekursive Dateiname beispielsweise 'a/file.txt' lautet, würde Ihr Versuch tempFileName = 'a /../ file' geben, was zu einem Fehler führt. – mj596
Ja, aber es ist ehrlich gesagt Mist, temporäre Dateien in einem anderen Ordner zu speichern. Speichern Sie die Datei mit dem Präfix .tmp und benennen Sie sie um, wenn Sie fertig sind. –