[英]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.