java - 想要java代码检查传入文件的目录,验证现有文件并将邮件发送给带有文件名、时间戳的收件人
问题描述
以下场景需要 Java 8 代码:
检查传入文件的目录文件夹。
如果有文件来检查它与该目录中的现有文件。
如果该文件是目录中的新文件,则向收件人发送一封带有文件名和时间戳的邮件。
需要 Java 8 代码来处理上述所有情况。
我主要致力于检查特定目录是否有 java 7 中的更改,但我不知道如何使用现有文件检查传入文件并发送邮件。
package com.javapapers.java;enter code here
import java.io.IOException;enter code here
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
public class MonitorDirectory {
public static void main(String[] args) throws IOException,
InterruptedException {
Path faxFolder = Paths.get("./fax/");
WatchService watchService = FileSystems.getDefault().newWatchService();
faxFolder.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
boolean valid = true;
do {
WatchKey watchKey = watchService.take();
for (WatchEvent event : watchKey.pollEvents()) {
WatchEvent.Kind kind = event.kind();
if
(StandardWatchEventKinds.ENTRY_CREATE.equals(event.kind())) {
String fileName = event.context().toString();
System.out.println("File Created:" + fileName);
}
}
valid = watchKey.reset();
} while (valid);
}
}
解决方案
要检查文件是否存在,您可以使用file.exists()
或者Files.exists(path)
您是否拥有它的路径。
要发送邮件,如果你想坚持使用 Oracle,你可以使用JavaMail,但是还有很多其他的邮件库(例如,这里是第 3 方的列表,在 Oracle 上发布)
推荐阅读
- powershell - 对象引用未设置为 powershell 中的对象实例
- html - Laravel:删除时如何使用 Sweet Alert 2 而不是确认消息?
- powershell - 将 Powershell 作为计划任务运行是否需要任何特殊权限?
- elasticsearch - ElasticSearch 术语聚合脚本时区转换
- php - 在 php codeigniter 中向用户发送电子邮件
- ios - Xcode 12 中的混合 Swift / Objective-C 项目:为什么 UIImageView.setImage 未知?
- swift - SwiftUI @ObservedObect 视图模型索引超出范围
- c - C中的二进制计数带有一个按钮
- nginx - nginx 负载均衡器没有将请求传播到所有服务器。仅在 2
- c++ - 调用存储在 std::any 中的对象的成员函数