我想檢查包含路徑的字符串是否合法。從路徑字符串獲取當前操作系統/過濾器無效字符的有效路徑字符
什麼不起作用:
- 我可以使用正則表達式和替換無效字符爲特定操作系統(如Windows);這隻會在一個特定的操作系統上工作
- 我可以使用Java 7的NIO
Paths.get()
並捕獲異常,但這隻會說明路徑是否有效,我想刪除無效字符。
我只在互聯網上發現了上述事情之一的來源。在標準庫中會出現類似getInvalidChars()
的東西,它會給我一個系統相關的無效字符列表(或者相反,getAllowedChars()
或類似的東西)。
Java版本無關緊要。
在此先感謝!
如果它作爲安慰,由Paths.get()生成的InvalidPathException會在其getIndex()方法返回有問題的字符的位置。也許這可以作爲(超慢)字符檢查器的基礎... –
我會檢查它的速度有多慢,它不必很快。 – kaesaecracker