当Java删除、编辑和更改文件夹中的文件时会发生什么情况?

当Java删除、编辑和更改文件夹中的文件时会发生什么情况?,java,Java,我有一个java应用程序,它使用 File folder = new File("filesFolder); File[] listOfFiles = folder.listFiles(); for(int i = 0; i < listOfFiles.length; i++){//check files and edit} File folder=新文件(“filefolder”); File[]listOfFiles=folder.listFiles(); 对于(int i

我有一个java应用程序,它使用

File folder = new File("filesFolder);
File[] listOfFiles = folder.listFiles();

    for(int i = 0; i < listOfFiles.length; i++){//check files and edit}
File folder=新文件(“filefolder”);
File[]listOfFiles=folder.listFiles();
对于(int i=0;i
使用特定说明浏览文件夹中的每个文件。如果在文件夹中循环并添加新文件,会发生什么情况?它会处理这些新文件还是跳过这些文件

此文件夹会不断更新要处理的新文件。

将跳过新文件(在调用
listFiles()
后添加)。此外,如果在处理任何文件之前删除了这些文件,则在尝试读取它们时会出现异常


这是因为你的数组
listOfFiles
没有改变。它只是一个
文件
对象的数组。它没有以某种方式链接到文件系统,除非你。

为什么不在Java 7上使用NIO2?使用NIO2有什么好处?新文件会被跳过。?你确定吗?@PaulVargas我很确定。他没有在看电影目录进行更改,那么程序怎么可能知道自从
listFiles()之后添加的新文件呢
call?但它会循环单个文件。java会检测到所有文件,然后循环还是从顶部随机开始?假设文件名从1到10依次排列,然后在处理9时添加了11,难道它不能执行11吗?@Dev Ria查看您的代码。您可以通过调用
folder.listFiles()来定义文件列表
。这将使用
文件
对象填充数组,这些对象是由Java创建的抽象。然后,您将在此数组上循环。在循环过程中,您不会更新正在循环的文件列表。您需要调用
列表文件()
并在循环的每次迭代中查找更改,或者访问我答案中的链接并实现
WatchService
。如何将WatchService添加到当前流程中?是否需要重写循环?