[jcifs] Issues with file names that start with a space

Michael B Allen mba2000 at ioplex.com
Wed Feb 21 20:41:50 GMT 2007


On Wed, 21 Feb 2007 15:00:49 -0500
Jake Goulding <goulding at vivisimo.com> wrote:

> Hey all, I have a share that has a file named " spacey.txt". If I do a 
> listFiles() on the containing directory, I am given the file name 
> "spacey.txt" (notice missing leading space). Then, when I try to get 
> that file, it of course cannot be found. Is there some trick to get 
> these files to be listed properly?

I just looked at this and found that it's a problem with the java.net.URL
class. If you do:

  URL url = new URL("http://server/path", " spacey.txt");
  System.out.println(url.toString());

you get:

  http://server/path/spacey.txt

So the java.net.URL class is being "helpful" and trimming the parameter.

Actually URLStreamHandler.parseURL in jcifs.smb.Handler is the point
of failure.

I think the solution to this would be to save the relative name
part passed to the SmbFile and return it when SmbFile.getName() is
called. Currently the SmbFile.getName() method gets the name from the
conanicalized URL so that everything is using the same code path.

I'll put this on The List.

Mike

-- 
Michael B Allen
PHP Active Directory SSO
http://www.ioplex.com/


More information about the jcifs mailing list