当前位置: 首页 > 知识库问答 >
问题:

使用java在目录中新建文件

尉迟高澹
2023-03-14

我想确定是否使用java将新文件或文档放置在特定的文件夹/目录中。例如,“C:\Users\User\Documents”目录中没有任何文件,然后我从Internet下载了一个pdf文件,并被放在提到的目录中。如何使用java编程语言确定是否在目录中检测到新文件?(还应打印出目录名和新文件名)。关于如何使用Java语言创建此类程序,我可以提供一些提示吗?它应该是连续的或在一个无限循环中。

我试着用这个:

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编程还是新手:)*)

共有2个答案

郭意
2023-03-14

谢谢你们的提示!:)我发现了如何使用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);
        }
    }
}

希望这能帮助其他人。也要感谢那些帮助我的人,以及创建这本书的不同研究材料的作者:)这本书要归功于克里谢尔先生:)

鄂育
2023-03-14

你可以使用手表服务。监视已注册对象的更改和事件的监视服务。例如,文件管理器可以使用监视服务监视目录的更改,以便在创建或删除文件时更新文件列表的显示。这里可以找到一个很好的例子。

您也可以使用Apache Foundation的Commons IO库,主要是org.apache.commons.io.monitor包。

 类似资料:
  • 问题内容: 我试图在该目录中创建一个新目录和一个文件。谁能告诉我我要去哪里错了? 我正在使用Windows系统,并且我希望该目录存在于我的文件所在的文件夹中。 问题答案: 基本上,正在发生的事情是,您正在创建一个名为的目录,然后尝试创建一个名为同一个东西的新文件,这显然行不通。 所以,而不是… 尝试… 额外 如果失败,实际上不会抛出任何异常,这很烦人,所以我会做更多类似的事情… 就这样我知道实际的

  • 问题内容: 如果要在中创建文件,可以执行以下操作: 另外,我想用于创建文件。那我该怎么办呢?由于某种原因,该文件未在正确的目录中创建。 问题答案: 最好的方法是:

  • 我正在尝试创建一个脚本,以便在动态创建一个新文件夹中执行假脱机操作这是我的代码 并且它给出了无法创建假脱机文件C:\Users\rjen01\Desktop\MAR\21MAR2017\U 1227的错误。csv 这是因为没有文件夹C:\Users\rjen01\Desktop\MAR。所以如何在spool命令中动态创建新文件夹。

  • 问题内容: 我正在创建一个简单的程序,尝试从磁盘中读取“ conf / conf.xml”,但是如果此文件或目录不存在,则会创建它们。 我可以使用以下代码执行此操作: 我的问题是,这是否真的是最优雅的方式?需要创建两个简单的路径以在新的子目录中创建新文件似乎多余。 问题答案: 您可以将声明为,而不是。然后,您可以使用,请参见下面的示例: 或者,按原样使用代码,您可以使用:

  • 在我的应用程序中,用户可以选择一个目录,在其中使用隐含的意图action_open_document_tree创建Excel文件。但是,中返回的Uri不能由使用。它抛出: 在中,我通过检查路径是否存在,如果不存在,我要创建一个新的Excel文件。 onActivityResult(): createNewExcelFile():

  • 问题内容: 您好,我只是想知道如何在当前用户的主目录下创建一个自定义目录。我已经尝试过了,但是行不通…(下面的代码) 我希望它转到此目录并在documents文件夹中创建该文件夹 c:/用户/“用户” /文档/ SimpleHTML / 问题答案: 首先,使用获取“用户”目录… 其次,使用而不是确保创建完整路径,因为假设仅需要创建最后一个元素 现在,您可以用来检查抽象路径是否存在,以及是否不构成该