首页 > 解决方案 > 想要java代码检查传入文件的目录,验证现有文件并将邮件发送给带有文件名、时间戳的收件人

问题描述

以下场景需要 Java 8 代码:

  1. 检查传入文件的目录文件夹。

  2. 如果有文件来检查它与该目录中的现有文件。

  3. 如果该文件是目录中的新文件,则向收件人发送一封带有文件名和时间戳的邮件。

需要 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);
}
}

标签: java

解决方案


要检查文件是否存在,您可以使用file.exists()或者Files.exists(path)您是否拥有它的路径

要发送邮件,如果你想坚持使用 Oracle,你可以使用JavaMail,但是还有很多其他的邮件库(例如,这里是第 3 方的列表,在 Oracle 上发布)


推荐阅读