我用vfs将文件写入一个不存在的文件夹。我希望此文件夹出现异常或创建。但是它们都没有发生,而是创建了一个使用缺少的文件夹名称创建的文件(至少文件的内容是正确的)。
但这种行为不是我想要的 - 应该创建一个丢失的文件夹或应该抛出异常。以下是我的序列将文件发送到 FTP 的示例:
<property name="OUT_ONLY" value="true"/>
<property name="transport.vfs.ReplyFileName" value="filename.txt" scope="transport"/>
<send>
<endpoint>
<address uri="vfs:ftp://USER:PASSWORD@SERVER/myFolder"/>
</endpoint>
</send>
当代理尝试写入文件并且文件夹"myFolder"不存在时,myFolder内有一个使用文件名为"myFolder"而不是文件名.txt正确内容写入的文件。
顺便说一下,问题也存在于本地文件(不是特定于FTP的)
上有人有解决这个问题的方法吗?
据我所知,WSO2 能够创建文件夹,但文件名会搞砸,例如,使用这样的地址
<address uri="vfs:ftp://USER:PASSWORD@SERVER/myFolder1/myFolder2"/>
假设 myFolder1 和 myFolder2 不存在。myFolder1 将被创建,但 myFolder2 不会,文件名将更改为 myFolder2,内容正确。
相反,您可以将文件夹名称添加到 ReplyFileName 属性,创建文件夹应该没有问题。
<property name="transport.vfs.ReplyFileName" value="myFolder/filename.txt" scope="transport"/>