Как правильно преобразовать URI XML в путь к файлу Windows?
В качестве отправной точки можно повернуть:
file:///C:/DirA/DirB/File.txt
в
C:\DirA\DirB\File.txt
... сначала удалив подстроку file:///
(использовав ее для определения того, что мы имеем дело с локальным файлом), а затем поместив обратную косую черту везде, где косая черта появляется в исходной строке. Это кажется хорошим началом, но этого недостаточно. Например, URI может выглядеть так:
file:///C:/DirA/DirB/With%20Spaces.txt
... который становится:
C:\DirA\DirB\With Spaces.txt
... после замены% 20s пробелами. Однако даже этого будет недостаточно, поскольку, возможно, также необходимо иметь дело с другими такими кодировками . Кроме того, некоторые из этих символов не будут допустимыми символами имен файлов Windows, поэтому необходимо определить, какие из этих кодировок являются допустимыми в именах файлов Windows, и пометить ошибку, если что-то еще встретится.
Есть что-нибудь еще, что я забыл? Кто-нибудь хочет расширить на вышеупомянутом?