【发布时间】:2019-06-25 17:46:50
【问题描述】:
我有简单的代码
using (FileStream fs = File.Create(@"newfile.txt"))
{
}
如果我给出路径“E:\newfile.txt”,则会收到错误 System.IO.IOException: 'The media is write protected.'
如果我给出路径“C:\newfile.txt”我不会收到错误但不会创建文件,即使我给出路径“C:\Users\Me\Documents\newfile.txt”我也不会收到错误并且不创建文件。
这些错误是否相关,我之前写入USB设备没有问题,我的C盘不应该被限制,当然Users文件夹根本没有限制。
我错过了什么?
【问题讨论】:
-
C 盘默认受限于
Windows 10。您在哪个版本的Windows上运行此代码?无论是哪个版本,My Documents都应该没问题,除非它像大多数企业一样因为漫游配置文件而被重定向到网络文件夹。 USB驱动器的错误可能被锁定或密码保护(与具有保护的外部硬盘驱动器相同)。您实际上是在将任何数据写入文件还是正是如何编写代码示例? -
那么,如果你创建的文件完全一样:
using (FileStream fs = File.Create(@"newfile.txt")),你能在项目的\bin\Debug或\bin\Release文件夹中找到该文件吗?您提到的另一条路径是受限制的\不可写\错误的。 -
@Franck Windows 10,就像代码示例一样, using 语句抛出异常。 Documents 不是网络文件夹。我可以在 Windows 资源管理器中的所有位置创建文件。
-
@Jimi 文件未在 bin 文件夹中创建且没有错误。
-
您的意思是在
Debug或Release文件夹中。如果未创建文件,则问题不在这里。也许该代码从未被调用过,其他地方出现错误等。将其放入 Button 的Click处理程序中 - 只是该代码 - 然后再试一次。