【问题标题】:How to set system modified date on file in Mule如何在 Mule 文件中设置系统修改日期
【发布时间】:2019-03-19 12:15:36
【问题描述】:

我有一个需求,比如使用 Mule 中的文件连接器将文件从入站目录传输到出站目录。在传输文件时,它会在输入文件连接器中配置的工作目录中进行处理。
现在,我的要求是,如果我在文件输入目录中放置一个旧文件,则工作目录中的文件应该具有修改系统日期的当前时间戳。 类似于 Unix 中用于设置系统修改日期的“Touch”命令。

请注意,我不想使用任何 Groovy 脚本方法或任何其他可能影响性能的 hack 方法来实现这一点。 以下是我的 Mule mflow:-

<file:connector name="File"     autoDelete="true" streaming="true" validateConnections="true" doc:name="File" outputAppend="true"/>
<file:connector name="File1" autoDelete="false" streaming="false" validateConnections="true" doc:name="File"/>
<flow name="FileReadandDeleteFlow1" doc:name="FileReadandDeleteFlow1">
    <file:inbound-endpoint   responseTimeout="10000" doc:name="File" connector-ref="File" moveToDirectory="E:\backup\test_workingDir"  path="E:\backup\test" moveToPattern="processingFile.xml">
    </file:inbound-endpoint>
    <file:outbound-endpoint path="E:\backup\test_out" outputPattern="Finaloutput.txt" responseTimeout="10000" connector-ref="File1" doc:name="File"/>

提前致谢

【问题讨论】:

    标签: file mule file-transfer mule-studio


    【解决方案1】:

    您可以#[function:dateStamp]#[function:datestamp:dd-MM-yy] 来实现此link 中的描述

    一个例子是:

    &lt;file:outbound-endpoint path="E:\backup\test_out" outputPattern="Finaloutput_[function:dateStamp].txt" responseTimeout="10000" connector-ref="File1" doc:name="File"/&gt;

    编辑:

    要始终在工作目录中显示文件的当前时间戳,您可以创建另一个流程,以特定时间间隔从工作目录中读取文件,然后使用 file:outbound-endpoint 将它们复制到同一目录

    【讨论】:

    • 感谢您的评论..但我并没有尝试将文件名更改为当前时间戳...我尝试将文件上的系统修改日期设置为当前时间戳...例如:- 如果我将 5 个月前创建的旧文件放到入站文件夹中,我将在我的工作目录中获得一个文件......工作目录中的这个文件将具有显示修改日期 5 个月大的系统时间戳...这个系统时间戳可以通过在 Windows 的视图菜单中设置详细信息选项来看到...我想用 Mule 修改这个系统时间戳
    • 问题不清楚..您想要一个更新的邮票而不处理文件还是文件将被处理?
    • 我希望系统将修改日期显示为工作目录中文件的当前日期时间。例如,如果我将 3 个月前创建的文件放在入站文件夹中,mule 文件连接器将处理它并将文件放在工作目录中。现在工作目录中的文件,系统将显示修改日期为旧日期(3个月大)..现在我需要系统显示修改日期作为工作目录中此文件的当前时间戳......希望我是现在清除.. 我想为工作目录中的文件设置修改的系统日期
    • 你的意思是你总是想向工作目录中的文件显示当前时间戳?
    • 是的.. 但不在文件名中......我想要系统修改日期中文件的当前时间戳......也就是说,当文件进入工作目录时,windows系统时间戳必须显示修改为当前日期时间的日期
    【解决方案2】:

    我们有 mel 使用它来获取当前日期和时间

    [server.dateTime.format("yyyyMMddhhmmss")].txt
    

    你喜欢我们可以在表达式中设置的格式。

    【讨论】:

      【解决方案3】:

      这对我有用

      <file:outbound-endpoint path="YOUR_PATH" outputPattern="#[function:datestamp:yyyyMMdd-HHmmssSSSSSS]
      _#[message.inboundProperties.originalFilename]" responseTimeout="10000" doc:name="Backup In Mule"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-22
        • 2022-01-20
        • 1970-01-01
        相关资源
        最近更新 更多