Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mule是否能够简单地移动/重命名文件?_Mule - Fatal编程技术网

Mule是否能够简单地移动/重命名文件?

Mule是否能够简单地移动/重命名文件?,mule,Mule,有没有一种方法可以简单地在Mule中移动/重命名文件而不是复制?下面的流程执行复制,但我真正想要的是简单地重命名文件。文件可能相当大 <file:connector name="Global-StageToInput" fileAge="10000" autoDelete="true" pollingFrequency="30000"/> <file:connector name="Global-FileInput" outputPattern="#[header:origin

有没有一种方法可以简单地在Mule中移动/重命名文件而不是复制?下面的流程执行复制,但我真正想要的是简单地重命名文件。文件可能相当大

<file:connector name="Global-StageToInput" fileAge="10000" autoDelete="true" pollingFrequency="30000"/>
<file:connector name="Global-FileInput" outputPattern="#[header:originalFilename]" />

<flow name="Global-MoveInputFiles">
    <file:inbound-endpoint connector-ref="Global-StageToInput" path="${stage}"/>
    <file:outbound-endpoint connector-ref="Global-FileInput" path="${input}"/>
</flow>

当您想将文件从一个目录移动到另一个目录时,文件将从您正在移动的目录中迅速消失

可以使用入站端点中的moveToDirectory备份此文件

为了重命名备份文件,可以在入站端点中使用moveToPattern

为了在目标中重命名,可以在出站端点中使用outputPattern 您可以使用以下链接获得更多想法

<file:inbound-endpoint connector-ref="input" path="/tmp/input" moveToDirectory="/tmp/backup" moveToPattern="#[header:originalFilename].backup"/>
<file:outbound-endpoint connector-ref="output" path="/tmp/output" outputPattern="#[function:datestamp]-#[header:originalFilename]"/>
如果只需要将文件从一个文件夹移动到另一个文件夹,则需要重命名文件名

然后使用以下代码

<file:inbound-endpoint connector-ref="input" path="/tmp/input"/>
<file:outbound-endpoint connector-ref="output" path="/tmp/output" outputPattern="#[function:datestamp]-#[header:originalFilename]"/>
只有出站端点中的模式


只有输入和输出中的路径是必需的。Rest all不是必需的,通过混合和匹配选项,可以使用链接。即使基本要求不需要连接器ref

我也找不到一种方法来只进行简单的旧移动/重命名。在提供的snippet Naveen中,既执行了输入文件的移动(这是我想要的),也在出站端点中生成了文件的新副本。我认为上面的snippet所做的是将原始文件复制到出站路径,然后删除入站路径中的文件。这与移动不同。如果我用一个大文件进行测试,我可以看到入站和出站目录中的文件,直到流程完成并删除入站目录中的文件。你能告诉我你想要什么吗。我希望您需要移动文件,并且代码片段就在那里。您需要从文件夹a中读取文件并将其移动到文件夹B,还是只需要重命名文件夹a中的文件?你可以做两件事。一种是在将文件从文件夹a移动到文件夹B时,您可以更改其名称,然后将其移动,在这里,您可以选择删除或保留文件夹A中的文件。如果您需要删除文件夹A中的文件,则可以选择添加另一个文件夹C,在该文件夹中,您可以使用新名称重命名对传输的文件进行备份。我们的mule流可以将一个可能非常大的文件存放在某处。我们有一个单独的进程,不受mule控制,它正在寻找文件,并且在cron计时器上。我们希望避免第二个进程开始读取mule可能正在编写的文件。我们最初希望让mule写入一个临时目录,然后将文件移动到最终位置。在O.S.Mule中,移动几乎是瞬时操作。Mule似乎只能执行复制->删除,这与移动不同。