2013-05-01 74 views
0

我寫了一個簡短的程序,將找到我已經制作的一個文件並打印它的一些細節。它執行所有權利,但它無法檢測到文件大小或者它是否隱藏。例如。代碼無法找到我的文件

file path: C:\temp\filetext.txt last modified: 0 file size: 0 Is file hidden?false 

該文件確實在C.臨時文件夾中我真的不知道是什麼問題

public void Q1() 
{ 
    String fileName = "filetext.txt"; 
    getFileDetails(fileName); 
} 

public void getFileDetails(String fileName) 
{ 
    String dirName = "C:/temp/"; 
    File productsFile = new File(dirName + fileName); 
    long size = productsFile.length(); 
    System.out.println("file path: " + productsFile.getAbsolutePath() + " last modified: " + productsFile.lastModified() + " file size: " + productsFile.length() + " Is file hidden?" + productsFile.isHidden()); 
} 
+0

文件路徑:C:\ temp \ filetext.txt最後修改日期:0文件大小:0文件是否隱藏?false – Liam 2013-05-01 17:07:37

+0

這是說'文件'沒有隱藏並且大小爲'0'。你是說這個文件是**隱藏的並且包含了一些東西嗎? – 2013-05-01 17:10:48

+0

我只是在我的機器上運行它,它運行良好。當文件不存在時,它確實打印出你所看到的內容。嘗試添加 if(!productsFile.exists()) System.out.println(「This file doesnt exist」);在getFileDetails,以確保您的文件可以找到 – 2013-05-01 17:11:03

回答

2

文件,並不需要一個物理文件的工作。因此,即使它應該表示的物理文件不存在/無法找到,您的File對象也可以存在。檢查JavaDoc的length()lastModified(),如果文件不存在,它們都會返回0L。因此,在調用其他方法之前,請確保您的File對象鏈接到文件系統上的現有文件,方法是調用file.exists()

+0

你是對的file.exist,它似乎無法找到該文件。但我確實在臨時文件夾中創建了一個名爲filetest.txt的文件。我不確定爲什麼它沒有選擇它。 C:\ temp – Liam 2013-05-01 17:19:55

+2

那麼,如果您在代碼中創建了名爲filetest.txt而不是filetext.txt的文件,問題就很明顯:-) – Marco 2013-05-01 17:29:18

+0

向我們顯示程序的輸出。我注意到你在路徑名中使用了正斜槓;我不知道當你用java來做什麼時,在Windows上會發生什麼。但是,是的,在打開任何其他屬性之前,您一定要檢查productsFile.exists()。 – 2013-05-01 17:31:42

相關問題