为什么在Windows中我不能命名文件夹或文件“ CON”?


30

在所有版本的Windows中,我们都无法重命名文件或文件夹名称,就像CON没有第三方文件重命名软件一样。在Windows 7中尝试执行此操作将导致错误:

指定的设备名称无效。

尝试con.txt在记事本中保存文件会导致类似的错误:

该文件名保留供Windows使用。
选择另一个名称,然后重试。

为什么我们不能CON在Windows中命名文件或文件夹?


Answers:


35

“ con”是系统I / O设备(控制台)的名称。

  • 骗局
  • ul

我想还有另外几个。

在过去,在DOS中使用以下命令创建文件是很常见的(并且我偶尔还是这样做):

C:\>copy con foo.txt
I'm typing some text here.
^Z
    1 file(s) copied.
C:\>

较小的更正:err不保留。保留设备名称的完整列表为:con,nul,prn,com1..9和lpt1..9。当与任何扩展名(例如con.txt)一起使用时,它们甚至被保留。
efotinis,2009年

“除非我们使用重命名软件”关于引用的部分,“重命名软件”如何解决本质上是操作系统限制的问题
Sathyajith Bhat

1
你懂我 我怀疑任何“重新命名软件”都可以做到这一点。但是如果可以的话,我会担心是否能够打开甚至移动文件。如您所说,操作系统将出现问题。
JMD

11
主列表位于msdn.microsoft.com/zh-cn/library/aa365247%28VS.85%29.aspx 不要将以下保留的设备名称用作文件名:CON,PRN,AUX,NUL,COM1 ,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9。也要避免在这些名称后加上扩展名;例如,不建议使用NUL.txt。
shf301

1
@Sathya:通过使用\\?\前缀绕过文件名解析。例如,“ \\?\ C:\ con \ nul.txt”。
grawity

13

CON在Windows中是保留名称。那么,PRNAUXNULLPT1和其他人。


2
CON是控制台的缩写。打开命令提示符窗口,导航到包含文本文件的目录,然后键入“ copy file.txt con”,它将文本文件的内容写入控制台(命令提示符窗口)
Keltari

12

我把这个答案重复了一次,以为我会在这里发布供您参考:

如前所述。这是从MS-DOS后面的CONsole设备保留的字(据我所记得)。但是,您可以强制Windows / DOS为您创建文件夹。对于设备,它使用格式\\.\[RESERVED_WORD]来访问“文件”(这些设备使用文件进行通信)。要强制Windows创建文件夹,而不是执行mkdir [RESERVED_WORD]以下操作:

mkdir \\.\[absolute path to folder of choice, including drive letter]\[RESERVED_WORD]

例如,要在我的桌面上创建CON文件夹,

mkdir \\.\C:\Users\me\Desktop\CON

要删除文件夹,您必须以相同的方式引用它,否则它将无法正常工作。

rmdir \\.\C:\Users\me\Desktop\CON

我的建议是仅使用其他名称。始终通过其绝对路径来引用它是非常困难的,尤其是如果您正在开发计划部署的应用程序时。



3

除了Pablo Santa Cruz的答案之外,这是Windows内部使用的关键字的完整列表,并且已保留。以下所有内容均不区分大小写

  • 骗子
  • PRN
  • 辅助
  • COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,COM0
  • LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8,LPT9,LPT0

您可以_con改用


2

您可以重命名它而无需使用任何特殊软件,只需使用命令提示符即可:

例如:

C:\>echo Test > \\?\C:\con
C:\>type \\?\C:\con
Test
C:\>rename \\?\C:\con test.txt
C:\>type test.txt
Test

之后\\?\应指定完整路径。



0

copy con是一种创建文本文件的古老(MS-DOS)方法。例如:

copy con output.txt

因此,它是保留字,不能在Windows中用作文件夹名称。


0

如前所述,您可以通过使用设备或文件名命名空间(例如)在命令行上创建和处理具有保留名称的文件和文件夹\\.\C:\NUL,但是请查看当您尝试通过Windows资源管理器访问此类文件或文件夹时会发生什么:

打开名为NUL的文件夹时出错 删除名为NUL的文件夹时出错

除非您使用上述名称空间解决方法,否则对具有保留设备名称的对象的任何访问都将被视为引用该名称指定的设备。发生这些错误是因为Windows试图像对待普通文件夹一样对它们进行操作,但是您无法打开名为,或以其他方式作为文件夹的设备NULCON因此会出现该Incorrect function错误(与Inappropriate ioctl for deviceLinux 上的错误类似)。


3
您已经混淆了一些术语。\\.\…Win32 设备名称空间\\?\…Win32 文件名(也用于文件夹)名称空间,并且\\compname\…UNC(网络)路径
Synetech

@Synetech:已更正。
bwDraco 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.