文件名约定

【勇芳软件工作室】汉化HomePreviousNext

虽然每个文件系统可以具有关于目录或文件名中各个组件的形成的特定规则,但所有文件系统都遵循相同的一般约定:基本文件名和可选的扩展名,以句点分隔。例如,MS-DOS FAT文件系统支持基本文件名8个字符,扩展名支持3个字符。这被称为8.3文件名。FAT文件系统和NTFS支持长达255个字符的文件名。这被称为长文件名。要获得一个长文件名的MS-DOS文件名,请使用GetShortPathName功能。要获取文件的完整路径,请使用GetFullPathName功能。

两个文件系统在形成路径时使用反斜杠(\\)字符分隔目录名称和文件名。

创建用户目录和文件名称或处理名称的应用程序的一般规则包括:

*使用当前代码页中的任何字符作为名称,但不要使用路径分隔符,范围为??0到31的字符,或文件系统明确禁止的任何字符。名称可以包含扩展字符集中的字符(128-255)。

*使用反斜杠(\\),正斜杠(/)或两者来分隔路径中的组件。没有其他字符作为路径分隔符可以接受。

*使用句点(。)作为路径中的目录组件来表示当前目录。

*使用两个连续句点(..)作为路径中的目录组件来表示当前目录的父节点。

*使用句点(。)将基本文件名与目录名或文件名中的扩展名分开。

*请勿在目录名称或文件名中使用以下字符,因为它们为Windows保留:

< > : " / \ |

*不要使用设备名称,例如【该】【同】【PRNen】作为文件名或目录名称。

*将路径处理为空终止的字符串。路径的最大长度(包括尾随反斜杠)由MAX_PATH给出。

CreateDirectoryFindFirstFileGetFileAttributesSetFileAttributes功能的宽(Unicode)版本允许超过MAX_PATH长度的路径,如果路径具有“\\\\?\\”或“\\\\?\\ UNC \\“ 字首。这些前缀指示函数关闭路径解析。使用带有本地存储设备路径的“\\\\?\\”前缀和带有“通用命名约定”格式的路径的“\\\\?\\ UNC \\”前缀。

*不要以区分大小写。考虑诸如【OSCAR】【奥斯卡】【奥斯卡】之类的名称是一样的。

通过遵循本节中列出的规则,应用程序可以为文件和目录创建有效的名称,而不管使用的文件系统如何。

Windows NT上的长文件名

操作系统将磁盘上的长文件名存储为特殊目录条目。当您创建一个长文件名时,操作系统将创建一个相应的短8.3形式的名称。

操作系统以Unicode格式存储磁盘上的长文件名。这意味着原始的长文件名始终保留,即使它包含扩展字符,也不管在磁盘读取或写入操作时是否处于活动状态的代码页。保存文件名的情况,但文件系统不区分大小写。

这些长文件名的有效字符集是NTFS字符集,少于一个字符:NTFS用于打开备用文件流的冒号(':')。这意味着您可以在NTFS和FAT分区之间自由复制文件,而不会丢失任何文件名信息。