What does the term "normalize" mean in this context?

I thought the issue being discussed was parsing an uploaded filename to
get just the filename sans path, as IE sends... where uploads from Windows
to a Unix server means that if you use the File.pathSeparatorChar to parse
the name, you would really be looking for the opposite of what you should
be using?

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Fri, June 10, 2005 1:17 am, Dakota Jack said:
> Frank,
>
> If the File class does not normalize the string used to create the
> File, then there is a bug.  There seems to be a bug in one version of
> Linux and that has been reported to Sun.  The constructor for File is
> as follows:
>
>
>     public File(String pathname) {
>       if (pathname == null) {
>           throw new NullPointerException();
>       }
>       this.path = fs.normalize(pathname);
>       this.prefixLength = fs.prefixLength(this.path);
>     }
>
> Notice that an object fs is called to normalize the pathname.  The
> object fs is created as a static field in all File classes as follows:
>
>
>     static private FileSystem fs = FileSystem.getFileSystem();
>
> The FileSystem class is an abstract class that has to be implemented,
> of course, for the os on which it exists.  So, the basis for the class
> is a JNI method:
>
>     public static native FileSystem getFileSystem();
>
> Sun did not go to all this trouble without expecting the actual
> separators to be normalized to whatever system a file is created on,
> so that no matter what your path happens to be in creating a File
> object, file.getName() should return the name without a file
> separator.  Is this helpful?
>
>
>
> On 6/9/05, Frank W. Zammetti <[EMAIL PROTECTED]> wrote:
>> Sorry guys, meant for this to go to the list only...
>>
>>
>>
>>
>> On Thu, June 9, 2005 4:35 pm, Martin Cooper said:
>> > Nope. If the upload came from a Windows system and the server is
>> running
>> on *nix, then the system separator is *not* what you want. You'd be
>> looking for '/' in a path that uses '\' as the separator.
>>
>> Good point.
>>
>> OK, so thinking simplistically..
>>
>>     final char PATH_SEP = File.pathSeparatorChar;
>>     final char ANTI_PATH_SEP = File.pathSeparatorChar == '/' ? '\\' :
>> '/';
>> String test = "/sub/dev/test.txt";
>>     int lastSep;
>>     lastSep = test.lastIndexOf(PATH_SEP);
>>     if (lastSep == -1) {
>>       lastSep = test.lastIndexOf(ANTI_PATH_SEP);
>>     }
>>
>> Should do the trick, no?
>>
>> > Martin Cooper
>>
>> --
>> Frank W. Zammetti
>> Founder and Chief Software Architect
>> Omnytex Technologies
>> http://www.omnytex.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
> --
> "You can lead a horse to water but you cannot make it float on its back."
> ~Dakota Jack~
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to