簡體   English   中英

mkdir()Java不斷拋出IOException

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM