簡體   English   中英

如何在Linux下創建一個用Java編寫的空格的文件夾?

[英]How to create a folder with spaces written in Java under Linux?

我有一個嚴重的問題

我想使用帶有運行時接口的Java類運行Linux命令,有一個命令可以創建一個名為“My Folder”的文件夾,帶有空格

對於create,Unix命令很容易做到:mkdir My \\ Folder或mkdir“My Folder”

但是如何在Java中翻譯它,我嘗試了兩個命令:Runtime.exec(“mkdir My \\ Folder”)Runtime.exec(“mkdir \\”My Folder \\“”)

這是一個例子:

import java.io.IOException;
public class CreerDossier {
    public static void main(String[] args) throws IOException {
        Runtime runtime = Runtime.getRuntime();
        runtime.exec("mkdir My\\ Folder");
        runtime.exec("mkdir \"My Folder\"");
    }
}

但它仍然不起作用,

對於runtime.exec(“mkdir My \\ Folder”),它創建了兩個文件夾My \\和Folder For runtime.exec(“mkdir \\”My Folder \\“”)它還創建了兩個文件夾“My and Folder”

有解決方案嗎?

謝謝 !

使用File.mkdir()更容易

File dir = new File("My Folder");
dir.mkdir();

其他答案解釋了如何在目錄名稱中放置空格。 我想試着說服你根本不要這樣做。

按照慣例,Linux上的路徑名中沒有空格。 當然文件系統允許這樣,等等。 但它讓Linux用戶的生活變得尷尬:

  • 從命令提示符輸入帶空格的路徑名時,您始終必須記住引用它們或轉義空格。

  • 在編寫路徑名存儲在變量中的shell腳本時,當路徑名中有/可能有空格時,必須要小心。 如果不這樣做,腳本可能會中斷。

結合這些,你會發現你的漂亮目錄名稱中包含空格實際上是一種麻煩......或更糟。

我的建議是重新設計你的系統以避免這種情況。 要么系統的用戶不允許首先在名稱中放置空格,要么(如果你必須支持它,因為它是一個要求),那么:

  • 使用URL樣式的百分比編碼來編碼文件名,這樣空格字符就不會在文件系統的實際路徑名中表示為空格,或者
  • 將用戶提供的名稱存儲在數據庫中。
runtime.exec(new String[] { "mkdir", "My Folder" });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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