簡體   English   中英

對於isDirectory,文件返回false,而Java中的isFile

[英]File returns always false for isDirectory and isFile in Java

為什么文件對於isFile()方法返回false,即使它是文件。 當它是目錄時,它為isDirectory()返回false。 難道我做錯了什么? 我測試的這些文件/目錄不存在,我需要創建這些,所以這就是我測試是否應該使用createFile()mkdir()

File file = new File("C:/Users/John/Desktop/MyDir/file.txt");
if(!file.exists())
{
    System.out.println("Is directory : " + file.isDirectory());         
    System.out.println("Is file : " + file.isFile());
}

if你正在檢查文件是否不存在。 如果它不存在那么它既不是文件也不是目錄。

Java無法確定您的File對象是文件還是僅包含路徑字符串的目錄。 String可以表示文件或目錄(您可以擁有名為“file.txt”的文件夾或具有相同名稱的文件)。

你正在做的是說它是否不存在。 如果它不存在,則它既不是文件也不是目錄。 您的邏輯肯定是錯誤的,因為您應該使用:

if(file.exists()){

您在不存在的文件對象上使用isDirectory()isFile() 如果指定的文件尚不存在,則根據文檔,這兩個方法都返回false

你的程序只打印if if(!file.exists()) ,這意味着如果文件存在,它會告訴你file.isFile() 也就是說,因為該文件不存在,那么您的程序只打印出False。

它是如何存在的文件或目錄? 在Linux和Windows中(雖然Explorer本身不允許你包含. ), file.txt是文件和目錄的有效名稱,因此Java無法知道你(或你的用戶)的意圖用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM