Microsoft KB Archive/108233
PRB: GetOpenFileName() and Spaces in Long Filenames
The information in this article applies to:
- Microsoft Win32 Application Programming Interface (API), included with:
- the operating system: Microsoft Windows NT, versions 3.1, 3.5
GetOpenFileName() is the application programming interface (API) for the open file common dialog box. This API displays the long filenames (LFNs) on NTFS and HPFS.
When using the OFN_ALLOWMULTISELECT flag with the GetOpenFileName() API, the dialog box automatically presents the 8.3 names for all LFNs that contain embedded spaces.
The original design of GetOpenFileName() uses a filename list that is space-delimited when the OFN_ALLOWMULTISELECT flag is specified. Thus, there is no programmatic way to determine which string tokens are complete filenames or fragments of a complete name with spaces.
This behavior is by design.
Historically, FAT filenames that contained embedded spaces were branded as "illegal," even though the specifications of the FAT file system do not impose such a restriction. For example, many of the MS-DOS command-line utilities do no allow the user to specify filenames with embedded spaces, because of difficulties that would be introduced in parsing the command line. Under Windows NT, the command utilities have been enhanced to support such names if they are in quotation marks.
Additional query words: File Open OFN_ALLOWMULTISELECT long filename lfn
Keywords : kbCmnDlg kbCmnDlgFileO kbCmnDlgSave kbOSWinNT310 kbOSWinNT350 kbGrpDSUser
Issue type : kbprb
Technology : kbAudDeveloper kbWin32sSearch kbWin32API
Last Reviewed: October 27, 2000