使用java在目录中创建新文件
我想确定是否使用java将新文件或文档放置在特定的文件夹/目录中。例如,“C:\Users\User\Documents”目录中没有任何文件,然后我从Internet下载了一个pdf文件,并被放在提到的目录中。如何使用java编程语言确定是否在目录中检测到新文件?(还应打印出目录名和新文件名)。关于如何使用Java语言创建此类程序,我可以提供一些提示吗?它应该是连续的或在一个无限循环中 我试着用这个:使用java在目录中创建新文件,java,file,directory,Java,File,Directory,我想确定是否使用java将新文件或文档放置在特定的文件夹/目录中。例如,“C:\Users\User\Documents”目录中没有任何文件,然后我从Internet下载了一个pdf文件,并被放在提到的目录中。如何使用java编程语言确定是否在目录中检测到新文件?(还应打印出目录名和新文件名)。关于如何使用Java语言创建此类程序,我可以提供一些提示吗?它应该是连续的或在一个无限循环中 我试着用这个: package readfilesfromfolder; import java.io.Fil
package readfilesfromfolder;
import java.io.File;
public class ReadFilesFromFolder {
public static File folder = new File("C:/Documents and Settings/My Documents/Downloads");
static String temp = "";
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Reading files under the folder "+ folder.getAbsolutePath());
listFilesForFolder(folder);
}
public static void listFilesForFolder(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
if (fileEntry.isFile()) {
temp = fileEntry.getName();
if ((temp.substring(temp.lastIndexOf('.') + 1, temp.length()).toLowerCase()).equals("txt"))
System.out.println("File= " + folder.getAbsolutePath()+ "\\" + fileEntry.getName());
}
}
}
}
}
但根据结果,它只是访问了目录,但没有列出任何新项目。而且,它还没有在循环中,因为我还没有放置它。谢谢:)(*注意:我还是Java编程新手:)*)您可以使用。监视已注册对象的更改和事件的监视服务。例如,文件管理器可以使用监视服务监视目录的更改,以便在创建或删除文件时更新文件列表的显示。
我们可以找到一个很好的例子
你也可以使用Apache基金会的库,主要是包。
谢谢各位的提示!我发现了如何使用WatchService执行此操作:)
这是根据我的研究和阅读得出的结果:)publicstaticvoidmain(字符串[]args)引发IOException{
//此处的TODO代码应用程序逻辑
WatchService WatchService=FileSystems.getDefault().newWatchService();
//更改所需的路径
Path directory=Path.get(“C:\\Users\\User\\Documents”);
//确定是否创建、删除或修改文件的步骤
//条目创建可以更改为条目修改和条目删除
WatchKey WatchKey=directory.register(watchService,StandardWatchEventKinds.ENTRY\u CREATE);
//此部分用于输出创建、修改或删除的文件
虽然(正确){
for(WatchEvent事件:watchKey.pollEvents()){
System.out.println(event.kind());
路径文件=directory.resolve((Path)event.context());
System.out.println(文件);
}
}
}
希望这能帮助其他人。也要感谢那些帮助我的人以及创建这本书的不同研究材料的作者:)这本书要归功于Kriechel先生:)检查这本书的使用
WatchService
:哦,谢谢:)我要阅读和研究这本书。:)谢谢!:)这将对我制定计划有很大帮助:)
public static void main(String[] args) throws IOException{
// TODO code application logic here
WatchService watchService = FileSystems.getDefault().newWatchService();
//The path needed for changes
Path directory = Paths.get("C:\\Users\\User\\Documents");
//To determine whether a file is created, deleted or modified
//ENTRY_CREATE can be changed to ENTRY_MODIFY and ENTRY_DELETE
WatchKey watchKey = directory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
//This portion is for the output of what file is created, modified, or deleted
while (true){
for (WatchEvent<?> event : watchKey.pollEvents()) {
System.out.println(event.kind());
Path file = directory.resolve((Path) event.context());
System.out.println(file);
}
}
}