Page 1 of 1

Filenames changed to uppercase when opened from IFS

Posted: Mon Sep 22, 2003 6:27 pm
by RedsWinThePennant
I have .java files on the IFS structure on an AS400. When I open source in TextPad, the filenames are changed to uppercase. They show as mixed case in the TextPad 'open file' dialogue box, but as soon as I open them, the filenames are changed to uppercase. Java is case sensitive, so it causes compile problems. Any ideas?

Posted: Mon Sep 22, 2003 7:15 pm
by MudGuard
What happens if you do the same with Notepad (shudder ;-))?
Does it also change the case?

Same problem with Notepad

Posted: Mon Sep 22, 2003 7:38 pm
by RedsWinThePennant
It does the same thing in Notepad, the filenames become uppercase. Text in the file is not changed by TextPad or Notepad, just the filenames.

Posted: Mon Sep 22, 2003 8:34 pm
by MudGuard
THen it seems to be a problem not of Textpad but of whatever software is used to access files on the AS400...

Posted: Tue Sep 23, 2003 8:29 am
by bbadmin
MS Windows has a whole heap of baggage to carry around, for backwards compatibility with DOS, so file names have short and long forms, and are case insensitive. In order to preserve the long file name, and its original case, user supplied names must be converted to a canonical form. TextPad does this by calling the Windows API, SHGetPathFromIDList. If a network file system does not correctly implement the back end of that API, problems like this can arise. Your only solution is to obtain a fix from the supplier of that system.

Keith MacDonald
Helios Software Solutions

IBM Software Technical Document about his problem

Posted: Tue Sep 23, 2003 4:39 pm
by RedsWinThePennant
It appears to be a combination of how Win98 and the IFS do things, so I'm getting a 2000 upgrade to solve my problem. There is no circumvention for Win98 . Thanks for the help.
==============================================
IBM STD:

NetServer - Case Sensitivity Issues with Windows 98
Problem:
When using Windows 98 and moving files from one IFS location to another over a NetServer drive connection, file names in the new location get created in all upper case. This may cause a problem for some applications (such as Java) which use case sensitive names.
Explanation:
The root of the IFS (and user directories) is case preserving, not case sensitive. This means that if a file is created as aaaaa.aaa it will continue to display on the IFS as aaaaa.aaa. If the file is created as AAAAA.AAA it will continue to display on the IFS as AAAAA.AAA. If the file is created as Aaaaa.AAA it will continue to display on the IFS as Aaaaa.AAA. Regardless of the way the name displays (all lower case, all upper case, or mixed case) it is the same file name. For example, you cannot rename aaaaa.aaa to AAAAA.AAA. If you attempt to do so, you will receive a message saying that this file already exists.
When the Windows 98 client asks for information about the files, it makes the request with the file name in all upper case. On this type of request, the NetServer does not have access to the actual name in the IFS, so it must echo the name provided by the client. Therefore, when this file is copied to a different location, the name gets created as all upper case.
Circumvention:
There is no circumvention when using Windows 98.
This problem does not occur with Windows 95, Windows NT, or Windows 2000 Professional. When using these versions of Windows, new file names will be created correctly. No testing has been done on Windows ME.