2 # nturl2path convert a NT pathname to a file URL and
6 """ Convert a URL to a DOS path...
15 # No drive specifier, just convert slashes
17 # path is something like ////host/path/on/remote/host
18 # convert this to \\host\path\on\remote\host
19 # (notice halving of slashes at the start of the path)
21 components
= string
.split(url
, '/')
22 # make sure not to convert quoted slashes :-)
23 return urllib
.unquote(string
.join(components
, '\\'))
24 comp
= string
.split(url
, '|')
25 if len(comp
) != 2 or comp
[0][-1] not in string
.letters
:
26 error
= 'Bad URL: ' + url
28 drive
= string
.upper(comp
[0][-1])
29 components
= string
.split(comp
[1], '/')
31 for comp
in components
:
33 path
= path
+ '\\' + urllib
.unquote(comp
)
38 """ Convert a DOS path name to a file url...
43 ///C|/foo/bar/spam.foo
48 # No drive specifier, just convert slashes and quote the name
50 # path is something like \\host\path\on\remote\host
51 # convert this to ////host/path/on/remote/host
52 # (notice doubling of slashes at the start of the path)
54 components
= string
.split(p
, '\\')
55 return urllib
.quote(string
.join(components
, '/'))
56 comp
= string
.split(p
, ':')
57 if len(comp
) != 2 or len(comp
[0]) > 1:
58 error
= 'Bad path: ' + p
61 drive
= urllib
.quote(string
.upper(comp
[0]))
62 components
= string
.split(comp
[1], '\\')
63 path
= '///' + drive
+ '|'
64 for comp
in components
:
66 path
= path
+ '/' + urllib
.quote(comp
)