我想寫一個函數來驗證天氣給定的路徑在Linux/Windows中有效的文件擴展名。正則表達式來驗證窗口和擴展的linux路徑
例如:
Windows路徑:d:\ DATA \ MY_PROJECT \ 01_07_03_061418738709443.doc
Linux的路徑:/source_data/files/08_05_09_1418738709443.pdf
,我已經嘗試的代碼是
static String REMOTE_LOCATION_WIN_PATTERN = "([a-zA-Z]:)?(\\\\[a-z A-Z0-9_.-]+)+.(txt|gif|jpg|png|jpeg|pdf|doc|docx|xls|xlsx|DMS)\\\\?";
static String REMOTE_LOCATION_LINUX_PATTERN = "^(/[^/]*)+.(txt|gif|jpg|png|jpeg|pdf|doc|docx|xls|xlsx|DMS)/?$";
public boolean checkPathValidity(String filePath) {
Pattern linux_pattern = Pattern.compile(REMOTE_LOCATION_LINUX_PATTERN);
Pattern win_pattern = Pattern.compile(REMOTE_LOCATION_WIN_PATTERN);
Matcher m1 = linux_pattern.matcher(filePath);
Matcher m2 = win_pattern.matcher(filePath);
if (m1.matches() || m2.matches()) {
return true;
} else {
return false;
}
}
如果path在windows/linux中有效,則此函數的結果爲true。 上述函數不會返回包含日期的某些路徑的正確結果,_? ,*在他們的道路上。
這甚至值得嗎?您將在遠程端收到異常,無論文件是否具有無效字符,或者文件具有有效字符,但是指的是不存在或不可訪問的路徑。例如''/root/08_05_09.pdf''會通過正則表達式檢查,但可能會失敗,無論您的應用程序正在執行什麼操作。因此無論如何,都會檢查遠程端的有效性。 – VGR
這些驗證將在客戶端本身執行。我只是根據遠程端配置checkPathValidity()方法。 –