【问题标题】:How can I check, whether a file name exists in a directory? [closed]如何检查目录中是否存在文件名? [关闭]
【发布时间】:2023-03-26 07:26:01
【问题描述】:

我的程序只是读取 2 个值,然后对它们进行一些操作。 (这部分不重要。)一开始我必须检查文件名。例如我的程序以

开头

输入文件名:

当我输入文件名时,我的程序应该检查项目工作区中是否存在同名的文件。我在项目库中有一个文件,我想检查:“此文件名是否与用户给定的名称相同”。

 String workingDir = System.getProperty("user.dir");

我可以使用此代码获取工作区位置。

 File a = new File(" --Workspace direction-- ");
 if(filename.equals(a.getName())){

 }

我创建了一个新文件并尝试与.getName() 方法进行比较。问题是我认为在工作区位置缺少 .txt 文件名。当我使用第一个代码获得工作区位置时,我只有

/Users/asd/Documents/workspace/project/

这个。但是为了能够获取文件名,该文件路径的末尾应该有文件名。如何检查工作区目录中是否存在用户输入指定名称的文件?

【问题讨论】:

  • 我无法理解您的问题。 “工作空间方向”是什么意思?您是否意识到“工作区”是一个仅存在于 IDE 和开发人员机器上的概念?最终用户没有任何工作空间。他们所拥有的只是您的程序,他们从某个目录执行。也就是说,我什至不明白你想要达到什么目的。用户输入文件名。然后呢?
  • 对不起,误会了。这样想,当我在我的电脑上运行这个java代码时没有问题。我可以写一个代码 File a = new File("/Users/asd/Documents/workspace/project/.input.txt" );我可以轻松获取文件名并与输入文件名进行比较。但是另一台电脑。 /Users/asd/Documents/workspace/project/.input.txt 这个方向会改变。 (抱歉输入错误。我正在尝试调整:))@JBNizet
  • 请回答我的问题。假设我在我的电脑上安装了你的程序。然后我运行它。它要求我输入文件名。我输入“hello.txt”。那么程序应该怎么做呢?
  • 例如检查您的桌面是否有同名文件“hello.txt”。您的桌面将是我的工作区文件。认为这是您的桌面方向“/Users/JBNizet/Desktop/”,但在另一台计算机中这个方向会有所不同。正如我所说,在 java 代码中,我必须编写创建新文件的方向。当我得到文件的方向时,我怎样才能得到这个方向的文件名?想想你的桌面上只有一个文件。
  • @karacaoglanb 您所说的“方向”通常称为file path

标签: java eclipse


【解决方案1】:

假设inputName 包含来自用户的输入:

 /* In your case, this is entered by the user */
 String inputName = "testfile.txt"; 

然后你得到你的工作区目录:

 String workingDir = System.getProperty("user.dir");

现在您想知道,该工作区目录中是否存在名为“testfile.txt”的文件。为这样的文件创建一个 File 实例:

 // a File instance for the directory:
 File workingDirFile = new File(workingDir); 
 // a File instance for a file in that directory:
 File testfile = new File(workingDirFile, inputName);

现在您应该拥有包含“/Users/asd/Documents/workspace/project/”的workingDirFile 和包含“/Users/asd/Documents/workspace/project/testfile.txt”的testfile。 检查文件是否存在:

 if (testfile.exists()) {
     /* file with name "testfile.txt" exists in project dir */
 } else {
     /* file with name "testfile.txt" does not exist in project dir */
 }

【讨论】:

  • 很高兴我能帮上忙 :-) 您可能想查看文件 javadoc 并可能想添加更多测试。例如,如果您只希望用户输入与实际文件而不是目录匹配,请确保 testfile 是文件而不是目录。 (详细信息在 javadoc 中)
猜你喜欢
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 2015-07-15
  • 2012-07-02
  • 2014-03-06
相关资源
最近更新 更多