我在Windows中使用Java創建文件。這工作:Java,創建文件和文件夾
String newFile = "c:/"+Utilities.timeFormat();
...
some code that creates a folder
這不起作用:
String newFile = "c:/newDirectory/"+Utilities.timeFormat();
...
some code that creates a folder
我在Windows中使用Java創建文件。這工作:Java,創建文件和文件夾
String newFile = "c:/"+Utilities.timeFormat();
...
some code that creates a folder
這不起作用:
String newFile = "c:/newDirectory/"+Utilities.timeFormat();
...
some code that creates a folder
您必須使用File.mkdir()
或File.mkdirs()
方法到create a folder。
編輯:
String path="c:/newDirectory";
File file=new File(path);
if(!file.exists())
file.mkdirs(); // or file.mkdir()
file=new File(path + "/" + Utilities.timeFormat());
if(file.createNewFile())
{
}
感謝您提供此信息。看起來我可能需要做的是:1)IF(文件夾不存在){創建文件夾;} 2)將新文件放在文件夾中。 –
你能檢查是否有權限創建c:/
文件夾?
你能告訴我們堆棧跟蹤嗎?
如果「newDirectory」並不存在,你應該使用方法mkdirs()
從File
類之間創建的所有目錄。
不知道這是創建目錄的實際代碼:不是的mkdir()
用mkdirs()
+1推薦mkdirs()而不是mkdir() –
該目錄不存在的事實可能是爲什麼它不工作,他第一次通過。正如許多人指出的那樣,使用mkdirs()將確保您要寫入的文件在子文件夾中,它將創建它們。現在,這裏是它看起來是這樣的:我不使用+創建一個路徑
File file = new File(new File("c:/newDirectory"), Utilities.timeFormat());
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
OutputStream stream = new BufferedOutputStream(new FileOutputStream(file));
try {
// put your code here to write the file
} finally {
stream.close();
}
通知。相反,我創建一個File對象,並將它傳遞給父文件和文件的名稱。另外請注意,我不會在父文件和文件名之間放置路徑分隔符。使用File構造函數負責創建路徑的獨立於系統的方式。
在嘗試寫入新文件之前是否存在newDirectory? – chubbsondubs
第一次運行時(在許多機器上)目錄不存在。第一次後,目錄將被創建。 –
錯誤信息是什麼? –