- From: Graham Klyne <gk@ninebynine.org>
- Date: Thu, 12 May 2005 13:40:16 +0100
- To: <uri@w3.org>
I've recently been tinkering with a Java program that uses URIs, finding
that it doesn't work on Windows because of its filename->URI conversion
logic. This has prompted me to map out a generic function to map a
filename to a file: URI.
Examples:
Unix:
Filename /foo/bar maps to file:///foo/bar
i.e. prepend "file://"
Windows:
Filename C:\foo\bar maps to file:///C:foo/bar
i.e. prepend "file:///" and map \ to /.
This has prompted me to try and create a generic, operating-system
independent function to turn (almost all) filename strings into
corresponding file: URI string. My first attempt is this, which attempts
to cover Windows and Unix:
[[
public static String uriFromFilename(
String filename)
{
StringBuffer mapfilename = new StringBuffer( filename ) ;
for ( int i = 0 ; i < mapfilename.length() ; i++ )
{
if ( mapfilename.charAt(i) == '\\' )
mapfilename.setCharAt(i, '/') ;
}
if (filename.charAt(0) == '/')
{
return "file://"+mapfilename.toString() ;
}
else
{
return "file:///"+mapfilename.toString() ;
}
}
]]
What's missing here? How does this stand up on a Mac platform?
#g
------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact
Received on Thursday, 12 May 2005 13:16:05 UTC