2012-01-25 57 views
0

我堅持沒有文件夾的事實。創建新目錄

private static File createNewTempDir() { 
File baseDir = new File(System.getProperty("java.io.tmpdir")); 
String baseNamePrefix = System.currentTimeMillis() + "_" + Math.random() + "-"; 
LOG.info(System.getProperty("java.io.tmpdir")); 
File tempDir = new File(baseDir, baseNamePrefix + "0"); 
LOG.info(tempDir.getAbsolutePath()); 

tempDir.mkdirs(); 

if (tempDir.exists()) { 
    LOG.info("I would be happy!"); 
} 
else { 
    LOG.info("No folder there"); 
} 
return tempDir; 
} 

它有什麼問題嗎?我能得到的LOG,沒有文件夾是有...

+0

確定該文件夾不存在嗎?你只有在它存在時纔會記錄它。 –

+0

這似乎是'if(!tempDir.exists())'中的否定問題。這會打印出「我會很開心!」如果路徑不存在,並且「沒有文件夾」,如果它存在。 –

+0

這個問題與螞蟻有什麼關係?我看不到它的任何用法。也許你應該刪除標籤。 – joergl

回答

2

你的代碼是好的,但你的條件是錯誤的:

if (tempDir.exists()) { 
    LOG.info("I would be happy!"); 
} 
else { 
    LOG.info("No folder there"); 
} 

該文件夾確實創建,您可以通過獲取路徑檢查和在Explorer上打開。

編輯:它至少在Windows上工作。我清理了一下:

public static void main() { 
     File baseDir = new File(System.getProperty("java.io.tmpdir")); 
     File tempDir = new File(baseDir, "test0"); 
     System.err.println(tempDir.getAbsolutePath()); 

     tempDir.mkdir(); 

     System.err.println("is it a dir? " + tempDir.isDirectory()); 
     System.err.println("does it exist? " + tempDir.exists()); 
    } 

輸出:

C:\用戶\ marsch1 \應用程序數據\本地的\ Temp \ TEST0 它是一個目錄?真的 它存在嗎? true

+0

對不起Marcelo,我打錯了.. –

+0

Thx Marcelo。我不知道爲什麼會出現這個問題。這是一個事實,如果我遵循你的代碼,那麼我可以驗證文件夾是否成立。但如果我遵循我的代碼,它不起作用。無論如何,thx尋求幫助。我會在之後檢查問題,但現在解決方案需要更多......無論如何感謝您的幫助 –

+0

Rude-Student,我剛剛意識到我使用'file.mkdir()'而不是'file.mkdirS()'。也許這是你的問題? – Marcelo