[jcifs] Creating file with hash ('#') in filename

Christopher R. Hertel crh at ubiqx.mn.org
Tue Jan 14 05:29:37 EST 2003


In general (not just in the draft) once the URL is parsed the individual 
pieces should be URL decoded.  Parse first, decode second.  Then the 
filename portion (or the pathname, depending on how it gets figured out) 
would be converted to "test#1.txt".

I took the fragmentation paragraph out of the latest draft because,
basically, it doesn't make any sense to use fragmentation in a filesharing
protocol.  It makes sense for http because it *knows* that it will be
dealing with hypertext.  Still, a general-purpose parser will see the # as
a fragment delimiter, so it should be escaped.

I assume that there is some point at which the information passes from the 
Java URL class to the jCIFS code.  This is probably the point at which the 
escapes could be translated and removed from the strings.

Chris -)-----

On Mon, Jan 13, 2003 at 12:43:26PM -0500, Michael B. Allen wrote:
> On Mon, 13 Jan 2003 09:06:49 -0800
> Thomas Krammer <TKrammer at nxn-software.com> wrote:
> 
> > Hi everyone,
> > 
> > I'm trying to create a file with a hash mark ('#') in the filename on a SMB
> > server. This works fine using the Windows Explorer but fails when I try it
> > using jCIFS 0.7.0.
> > 
> > When I'm using the SMB URL "smb://server/share/test#1.txt" a file named
> > "test" is created because the "#1.txt" is interpreted as the fragment part
> > of the URL.
> > 
> > When I URL encode the hash mark ("smb://server/share/test%231.txt") a file
> > named "test%231.txt" gets created.
> > 
> > Looking at the "SMB Filesharing URL Scheme" document I didn't find any
> > information how to encode the path component of the SMB URL.
> > 
> > Did I miss something or is it simply not possible? 
> 
> No. It's currently not possible to reference such a file. I've known
> about this for a while but I have not quite come up with a solution.
> 
> Actually this is your area Chris. What does the latest draft way :~)
> 
> -- 
> A  program should be written to model the concepts of the task it
> performs rather than the physical world or a process because this
> maximizes  the  potential  for it to be applied to tasks that are
> conceptually  similar and, more important, to tasks that have not
> yet been conceived. 

-- 
Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org



More information about the jcifs mailing list