The file producer appends a header with the actual name of the file produced.

The header has the key
Exchange.FILE_NAME_PRODUCED

On Tue, Sep 27, 2011 at 7:14 PM, Stefan Eder <[email protected]> wrote:
>  Hi,
>
> I have a similar problem with the generated output files.
> Tried the bean way:
> public String generateFileName(final File file)
> and
> public String generateFileName(final File file, final Exchange exchange)
> and
> public String generateFileName(final GenericFile<File> genericFile, final
> Exchange exchange)
>
> The Problem is that, either way, at the point where my bean is called, only
> the in message of the exchange is initialized.
> So my bean is called with the input file and I don't see how to obtain the
> output file to check if the file already exists.
>
> Of course I could make my bean aware about the output path with an
> additional bean property, but this would not be a reliable solution.
>
> Ideas?
>
>
>> Hi
>>
>> Camel does not have any existing option for this.
>>
>> You can use a java bean to compute the number yourself
>> http://camel.apache.org/file-language.html
>>
>> You can just use the JDK File API to check if the file exists, if it
>> does, then increment the number, and try again.
>> Until you find a "free number".
>>
>>
>>
>>
>> On Mon, Sep 26, 2011 at 11:41 AM, nilsoni<[email protected]>  wrote:
>>>
>>> Hi,
>>> In File component URI, I have specified "moveFailed=..." option. Now
>>> whenever there is any error, file is moved to error folder. I have a
>>> requirement where files with same name are provided to input endpoint of
>>> file component and if all of them are failing one by one due to any
>>> reason,
>>> they should not be overridden in /error folder. Instead, it should be
>>> written in /error folder with some index appended to it. So for example,
>>>
>>> I have provided abc.txt to File input endpoint 5 times, on error, there
>>> should be 5 files in error folder with following name.
>>> abc1.txt
>>> abc2.txt
>>> abc3.txt
>>> abc4.txt
>>> abc5.txt
>>>
>>> Again, this should be done by camel and not by me by writing some index
>>> number in header as i may not be knowing what was the last index used
>>> (application may be shutdown in between multiple runs of flow mentioned
>>> above). Is there any uri option in camel which does this automatically?
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://camel.465427.n5.nabble.com/Appending-index-number-in-file-name-written-in-error-folder-by-File-component-tp4840768p4840768.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>
>>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: [email protected]
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to