我的Java程序正在啓動另一個進程並將文件的絕對路徑作爲命令行參數傳遞。該路徑可能包含空格。所以我在將它添加到參數之前引用了路徑。當路徑中出現雙引號時,我使用\
將其轉義出來。作爲參數傳遞時轉義文件名
下面是代碼:
private String escapeQuotes(String original) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < original.length(); i++) {
if (original.charAt(i) == '"') {
builder.append('\\');
}
builder.append(original.charAt(i));
}
return builder.toString();
}
我使用它像,
String args = " \"" + escapeQuotes(filePath) + "\"";
這種運作良好。但我想知道這種方法是否可靠?或者還有什麼我應該像我逃脫雙引號的方式來處理?
任何幫助將是巨大的!
你在爲哪個環境構建這個應用程序?至少在Windows上,文件名不能包含雙引號,因此不需要轉義它們。 –
我不認爲這是愚蠢的證據。在他們已經逃脫的情況下,你可以逃避它們。也許使用正則表達式呢? – jlordo
@jlordo我不會在這裏獲得轉義的文件路徑。 –