int ageLimit = Integer.parseInt(props.getProperty("file.age"));
BasicFileAttributes view = null;
try
{
view = Files.getFileAttributeView(
Paths.get(f.getAbsolutePath()),
BasicFileAttributeView.class).readAttributes();
} catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
FileTime ft = view.creationTime();
if (((new Date()).getTime() - (((ft.to(TimeUnit.MILLISECONDS))/* / 10000L) - 11644473600000L*/))) > ageLimit
* (24 * 60 * 60 * 1000))// file creation
// date(converted
// to
// java.util.date)
// - current
// date >
// oldness in ms
{
logger.info("File is old:" + (f.getName()));
return false;
}
>
int-ftp:inbound-channel-adapter从ftp站点获取文件并将其放入本地目录。
该文件由int-file:inbound-channel-adapter拾取并放入最终目的地。
这是一个两步的过程来拾取一个文件放在ftp位置。
<int:channel id="ftpChannel"/>
<int-ftp:outbound-channel-adapter id="ftpOutbound"
channel="ftpChannel"
session-factory="ftpClientFactory"
charset="UTF-8"
remote-file-separator="/"
auto-create-directory="true"
remote-directory="."
use-temporary-file-name="true"
/>
<int-ftp:inbound-channel-adapter id="ftpInbound"
channel="ftpChannel"
session-factory="ftpClientFactory"
charset="UTF-8"
local-directory="file:${paths.root}"
delete-remote-files="true"
temporary-file-suffix=".writing"
remote-directory="."
filename-pattern="*${file.char}*${file.char}*${file.char}*${file.char}*${file.char}*"
preserve-timestamp="true"
auto-startup="true">
<int:poller fixed-rate="1000"/>
</int-ftp:inbound-channel-adapter>
<bean id="ftpClientFactory"
class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
<property name="host" value="${ftp.ip}"/>
<property name="port" value="${ftp.port}"/>
<property name="username" value="${ftp.username}"/>
<property name="password" value="${ftp.password}"/>
<property name="clientMode" value="0"/>
<property name="fileType" value="2"/>
<property name="bufferSize" value="100000"/>
</bean>
<int-file:outbound-channel-adapter channel="abc" id="filesOut"
directory-expression="@outPathBean.getPath()"
delete-source-files="true" filename-generator="fileNameGenerator" />
<int:header-enricher input-channel="ftpChannel" output-channel="ftpChannel">
<int:header name="file_originalFile" ref="getPath" method="getCurrentPath" />
</int:header-enricher>
<int-file:inbound-channel-adapter id="filesIn" directory="file:${paths.root}" channel="abc" filter="compositeFilter" >
<int:poller id="poller" fixed-delay="5000" />
</int-file:inbound-channel-adapter>
<int:channel id="abc"/>
public String getCurrentPath(Message<File> payload)
{
File f = payload.getPayload();
if (payload.getHeaders().get(FileHeaders.ORIGINAL_FILE)== null)
{
return f.getAbsolutePath();
}
else
{
payload.getHeaders().get(FileHeaders.ORIGINAL_FILE).toString();
}
return null;
}
我做错了什么??我已经尝试使用标题-丰富的abc频道以及运气不好!
希望问题现在清楚了。谢谢你的帮助
关于:
无法将[org.springframework.integration.endpoint.EventDrivenConsumer]类型的值转换为属性“output channel”所需的类型[org.springframework.messaging.messageChannel]:找不到匹配的编辑器或转换策略
因为您有
我试过了 但是代码无法编译(Eclispe不接受代码:“不兼容的条件操作数类型BufferedReader和DataInPutStream”)。 为什么要这么做?因为我想在Stream中使用相同的变量: null 谁能帮帮我吗?提前道谢。
我遵循Rails指南:http://guides.rubyonrails.org/getting_started.html 我的索引中有下面一行。html。雇员再培训局: 但它不起作用;它只会进入展示页面。 供你参考,这是我的路线。rb: 我的控制器: 我的申请书。js: 我的申请书。html。雇员再培训局: 请注意,我已尝试更改
我用的是SpringBoot和JPA Hibernate。 我有这些实体: 当我尝试删除父实体(Post)时,所有相关实体注释都保留在数据库中。为什么级联删除不起作用?
我正在使用sping-boot-2.2.1和sping-HATEOAS。超媒体链接工作正常,但是我在返回链接时看到了属性,请在这里找到下面的代码作为参考和github中的项目, 终点: a)将返回集合模型= 和 b) 将返回列表 控制器。Java 实际反应 预期反应: 我试过了 Spring数据RestdefaultMediaType=application/json spring.hateoas
我已经花了很多时间尝试按照一步一步的指南将这三个连接在一起,以便能够通过html表单将某些内容插入数据库。 以下是html代码: 下面是php代码: 下面是MySQL表: 数据库和表的图片,显示行和数据
问题内容: 我有一个指向重要目录的符号链接。我想摆脱该符号链接,同时保留目录。 我试着回来。 我试着回来 ,然后逐步前进,然后 然后我去找我的后援。 有没有一种方法可以消除符号链接,而不会把婴儿和洗澡水一起扔掉? 问题答案: 基本上,您需要告诉它删除 文件 ,而不是删除 目录 。我相信之间的差异和存在的,因为在C库将每一个的方式不同。 无论如何,第一个应该工作,而第二个应该抱怨foo是目录。 如果