一、概述:
尽管每个文件系统能有自己特定的命名文件和目录名的规则,但是所有文件系统都遵循相同的通用规则:一个基本文件名(base file name)和一个可选的后缀名,中间用句点(.)分割。例如:MS-DOS FAT文件系统支持8字符的基本文件名和3字符的扩展名。这就是所谓的8.3文件名。FAT文件系统和NTFS并不受8.3文件名(8.3 file name)的限制。它们支持所谓的长文件名(long file name)。
二、命名规则:
1、在目录或文件名中使用句点(.) 来分割基本文件名和扩展名。
2、在路径中使用反斜线符号(\)来分割路径各元素(分割路径和文件名;或者分割两个路径)。反斜线符号 不能出现在文件名或路径名中,但是,可以作为卷名的一部分(例如:"C:\")。
注意:UNC名必须同\<server><share>这一格式一致。
3、在当前代码页(code page)中可以用任何字符来命名,除了0到31范围内的字符和由文件系统保留的字符。命名时可以使用扩展字符集(128–255)中的字符。但是不能使用如下的保留字符:< > : " / \ |
4、下面被保留的设备名不能被用来作为文件名:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9。
注意:这些保留设备名不能后跟一个扩展名;在Windows NT中CLOCK$也是一个保留设备名。
5、不考虑大小写敏感。
6、不要用空格和句点作为目录或文件名的结尾。
7、可以在目录中使用句点来表示当前目录。
8、在目录中可以使用连续的两个句点来表示当前目录的上级目录。
三、最大路径长度:
在Windows API中路径的最大长度是常量MAX_PATH,该常量被定义为260个字符。有些 Unicode 版本的函数允许最大路径长度为 32,767 个字符。
四、相对路径:
如果一个文件名不是由盘符和路径开始的,对于当前路径该文件名就是相对的;否则,就是全路径。
五、长文件名和短文件名:
Windows将长文件名保存在磁盘上作为特定的目录项。当你创建一个长文件名时,Windows会创建一个相应的MS-DOS (8.3)短文件名。
可以通过使用GetFullPathName()来获取文件的full path。可以使用GetShortPathName()来获取MS-DOS 文件名;可以使用GetLongPathName()来获取长文件名。