2017-01-23 48 views
0

我在C#中遇到一个奇怪的问题,当我试图打开名为CON.txt的txt文件时。我想存储CON.DE符号的雅虎财务数据。C#无法打开名为CON.DE.txt的文件?

using System.IO; 

namespace Test 
{ 
    internal class Program 
    { 
     public static void Main(string[] args) 
     { 
      File.Open("CON.DE.txt", FileMode.Create); 
     } 
    } 
} 

Visual Studio中抛出一个异常,并说:

的FileStream将不会打开Win32的设备,如磁盘分区和 磁带驱动器。避免在路径中使用“\。\”。

这是在.NET Framework或Win32的错误吗?有没有解决的办法?

+3

'CON'是Windows文件名的保留字(如'拷贝CON'),因为是'PRN'('复制readme.txt文件> PRN')和'COM'。我怀疑'COM'后面缺少字母正在触发这个状态。 –

+5

的[Windows和重命名文件夹中,“CON”的问题(http://stackoverflow.com/questions/448438/windows-and-renaming-folders-the-con-issue) – Gusman

+1

的可能的复制的[Windows可能的复制保留名称“c on”解决方法/ hack](http://stackoverflow.com/questions/39475219/windows-reserved-name-con-workaround-hack) –

回答

2

这样看来,CON是由Windows保留关键字,重回到MS-DOS的日子(但剩余的保留到今天)。

一个解决方案是用另一个字符(例如CON-DE.txt或等同物),以取代“CON”和“DE”之间的句号。

参见:https://support.microsoft.com/en-gb/help/74496/ms-dos-device-driver-names-cannot-be-used-as-file-names保留的MS-DOS设备驱动程序名称的完整列表。

+0

在Windows 10的Windows资源管理器中重新命名。非常好的接收! – David