[英]mkdir() Java keeps throwing IOException
我正在嘗試在當前工作目錄中以url標題創建目錄。 但是,我將該URL轉換為哈希,然后轉換為十六進制,因此我要創建的目錄名稱類似於273212b1。 但是,每當我執行代碼時,它都會引發IOException並無法建立目錄。 我不確定自己在做什么錯。
即使我執行類似File directory = new File(“用戶/任何文件/文檔” +目錄名)的操作; 它不起作用。
success = directory.mkdir();
和
if (!directory.mkdir())
您正在創建目錄兩次,或者嘗試創建該目錄。 第二次,它將失敗,並引發異常。
檢查您的邏輯。 這是多余的。 您可以將其減少到
if (!directory.exists() && !directory.mkdir())
{
throw new IOException(...);
}
您不需要所有這些輸出。
您不是在使用哈希或十六進制創建目錄,而是在嘗試使用URL創建目錄。 相關步驟如下:
用s =一些URL調用該方法:
public static File mkdir(String s) throws IOException
您將URL復制到一個名為dirname的變量中:
String dirname = s;
將s設置為哈希的十六進制(不更改dirname的值):
s = Integer.toHexString(dirname.hashCode());
您創建一個File對象,該對象表示具有名稱URL的目錄:
File directory = new File(dirname);
當您嘗試創建該目錄時,由於URL中所有對目錄名稱無效的字符,該目錄將無法工作。
您應該這樣做:
File directory = new File(s);
解決該問題后,您將需要處理目錄的雙重創建,如下所示:
if (directory.exists()) {
System.out.println("Directory already exists!");
} else {
success = directory.mkdir();
if (success) {
System.out.println("Successful");
} else {
throw new IOException("can't make directory for " + s);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.