2010-12-06 56 views
1

我编写了一个程序(c#.net 2.0),它查看给定目录中的所有ini文件,并尝试替换某些字符串模式(如果找到)。其中一些.ini文件是只读的,其中有大量.ini文件。写入只读文件

关于如何最好地处理这个问题的任何建议?它将用于安装了.net 2.0的win2k,win2k3 32bit环境。

+2

你有没有考虑去掉只读位,而你修改的文件? – cdhowie 2010-12-06 08:05:16

+2

如果文件被操作系统标记为只读,则不能在不更改该属性的情况下写入。 – jvanrhyn 2010-12-06 08:06:08

+0

看来也许我可以使用dos命令“attr -r c:\ directory \ *。ini”,我将如何在c#代码中实现它? – cc0 2010-12-06 08:06:44

回答

7

更改只读属性(如果你有正确的权限,你只能做到这一点):

FileInfo myFile = new FileInfo(pathToFile); 
myFile.IsReadOnly = false; 

现在,该文件可写的 - 看到在IsReadOnly属性的文档。

4

只是清除只读属性

File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.ReadOnly); 

但首先检查它是否有

bool isReadOnly = (File.GetAttributes(FilePath) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly;