为什么不能将文件夹命名为“._.” 在 Windows 7 中?

Bla*_*ack 75 windows windows-7

我只是注意到无法命名文件夹._.- 它被命名了._。有时,它在命名后消失,但在刷新视图后重新出现。Windows 似乎在文件名末尾有点问题 - 为什么会这样?

Ben*_*n N 124

Windows 通常要求文件没有扩展名或扩展名至少为一个字符;零长度扩展名并不酷,即以.. 文件夹也可以有扩展名,因此,Windows 不允许它们的名称以.. 来源,来自DavidPostill 链接的文章

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

(强调我的。)如果你试图结束一个以句点命名的文件或目录,Windows 只是假设你不需要扩展名,因此删除它,即使你md在命令提示符下创建它也是如此。

危险区!如果您非常希望文件夹名称以 结尾.,则需要使用\\?\. 在命令提示符下,md \\?\C:\path\to\container\._.确实会创建一个名为 的文件夹._.,但很多程序都会遇到问题,甚至资源管理器:

._.  问题

这样的目录只能rd用其\\?\名称删除或用其短 (8.3, dir /x) 名称重命名。

  • @EdwardBlack 它不会阻止任何可以读取堆栈交换的人(因此甚至不会为假设的小兄弟提供安全性)。由`dir /x` 给出的名称非常容易,有时这个名称也很方便。 (19认同)
  • FWIW,Cygwin 的命令行工具也可以在 Windows 7 上创建(和操作)这样的目录,而无需使用魔术序列。 (11认同)
  • @EdwardBlack 正如 Chris H 提到的,这不是很秘密,所以你不应该在这样的文件夹中存储任何特别重要的东西。此外,数字保密和保护是一个已经多次解决的问题。您可以使用任意数量的加密方法和程序来确保安全,而无需依赖晦涩的文件夹名称。 (4认同)
  • Nitpick:至少在 8.3 天内(我还没有调查过在 NTFS 上写入磁盘的内容)这一时期从未被写入磁盘。名称分为名称和扩展名,它们分别存储。阅读后,它采用了名称,如果有扩展名,则将句号和扩展名添加到名称中。因此没有办法表达._。在目录结构中,当然你丢失了尾随点。 (4认同)

Dav*_*ill 22

Windows 似乎在文件名末尾有点问题?为什么是这样?

不要以空格或句点结束文件或目录名称。尽管底层文件系统可能支持此类名称,但 Windows 外壳和用户界面不支持。

下面的源链接详细介绍了命名规则。

命名文件、路径和命名空间

  • 这对我来说仍然听起来像错误。 (5认同)
  • 视窗XP?我的猜测是这些限制源于 MS-DOS 0.x——让我们请盖茨先生来解决这个问题...... (2认同)

Ton*_*nny 19

这不是一个错误。这是为了防止兼容性问题而设计的。
它是旧 DOS 时代的遗留物。

FAT12(软盘)和 FAT16 文件系统(在 Windows 95 中引入长文件名支持之前的 FAT16)仅将文件名存储在 11 个字节中:
8 个字节用于名称,3 个字节用于扩展名。名称和扩展名之间的“句点”甚至没有存储。它被暗示并自动添加以用于显示目的。
目录根本没有扩展名。相反,扩展名的 3 个字节填充了“$”字符(这在实名中是非法的)。
因为 Windows 仍然与此资源管理器兼容,并且 Windows 的许多其他组件会默默地使尾随句点消失以防止产生兼容性问题。
正如其他人所说,您实际上可以通过使用 RAW 语义(绝对路径名前的 \\?\ 前缀)来处理此类文件夹。
在幕后,NTFS 和网络文件系统对此类文件和文件夹没有任何问题。这只是 Explorer 试图阻止用户创建可能导致其他软件出现问题的内容的一个案例。

(事实上​​,还有一些其他的遗留问题:
COM、COM1、COM2、AUX、PRN、LPT、LPT1、LPT2、LPT3、CON 等文件名可能会导致类似的问题,其中资源管理器和许多其他 Windows 部件都被搞糊涂了因为这些名称是“保留”名称,它们也可以追溯到 DOS 时代。)

  • 对于最初不相信点未被存储的任何其他读者:这对于 CP/M 和所有版本的 FAT 都是正确的,包括 [FAT16](http://www.maverick-os.dk/FileSystemFormats/FAT16_FileSystem. html#DirectoryEntry) 和 [FAT32](https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html#ss1.4)。 (3认同)
  • @BenN:实际上,在 FAT32 上有点不同;它存储一个短文件名(8+3 个字节,带有“隐式点”向后兼容的名称),加上一个长文件名(通常称为 LFN),由最多 255 个带有显式点的 UCS-2 字符组成,除非您正在使用 16 位应用程序,您总是使用 LFN。 (2认同)
  • -1 你对目录扩展名有误;也许 CP/M 确实如此(我对那个操作系统的记忆很糟糕),但自 DOS 时代以来,我一直在我的树中使用“programm.ing”目录,请参阅 https://www.win.tue.nl /~aeb/linux/fs/fat/fat-1.html - 目录条目完全作为文件处理,它们也可以有 8.3 名称。测试:创建一个 8.3 目录 (`mkdir testfile.name`) 并在 Windows 中显示它的 DOS 名称 (`dir /x`) - 你会如预期的那样得到 `TESTFI~1.NAM`。 (2认同)

归档时间:

查看次数:

14287 次

最近记录:

9 年,6 月 前