Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c语言中将文件属性设置为只读#_C#_Setattribute - Fatal编程技术网

C# 在c语言中将文件属性设置为只读#

C# 在c语言中将文件属性设置为只读#,c#,setattribute,C#,Setattribute,我的磁盘上有一个文件。我想检查一下它是否是只读的。如果是,我想让它可写。进行修改并保存它。并将其更改回只读。 为此,我尝试用c#执行下面的代码。它删除了readonly属性,并允许我编写和保存修改。但是,它无法将其设置回只读 谢谢你的帮助 这只是一个猜测,但是您的问题很可能是因为您正在设置和获取不同文件的属性。即路径和模型文件名 File.SetAttributes(path, File.GetAttributes(modelFilename) | FileAttributes.ReadOnl

我的磁盘上有一个文件。我想检查一下它是否是只读的。如果是,我想让它可写。进行修改并保存它。并将其更改回只读。 为此,我尝试用c#执行下面的代码。它删除了readonly属性,并允许我编写和保存修改。但是,它无法将其设置回只读

谢谢你的帮助



这只是一个猜测,但是您的问题很可能是因为您正在设置和获取不同文件的属性。即
路径
模型文件名

File.SetAttributes(path, File.GetAttributes(modelFilename) | FileAttributes.ReadOnly);
为什么这些名字不同?为什么不试试呢

File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.ReadOnly);
甚至只是一个测试

File.SetAttributes(path,  FileAttributes.ReadOnly);

虽然在阅读代码时,不清楚您如何使用
modelFilename
initialattributes
以及为什么与
path
不同,以及为什么不能直接调用

File.SetAttributes(path, initialattributes);

此外,是的,请确保文件句柄已关闭,如注释中所述,这可能会破坏交易(未知)

可能会重复此操作。在试图更改文件的属性之前,是否确实要关闭该文件?该“重复问题”的代码与OP使用的代码相同。这不是一个重复的问题——OP不想知道怎么做;OP想知道为什么显然正确的方法不起作用。谢谢你的回答。modelFileName最初用于我的代码中。在堆栈溢出上发布时,我将其替换为path。很抱歉搞混了。然而,随着您关于关闭文件句柄的建议的提出,我重新查看了代码,并可以修复该部分,现在该代码正在运行。
File.SetAttributes(path, initialattributes);