.Net中使文件变成只读文件

本文介绍如何使用C#的File类中的SetAttributes方法来修改文件的只读属性,同时保持其他属性不变。通过逻辑或和逻辑与操作符的应用,实现对文件属性的有效控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  .Net中使文件变成只读文件
 
   技巧
       可以使用定义在File类中的SetAttributes方法或定义在FileInfo类中的Attributes属性来更改文件的各种特性,其中一个特性是只读特性。要仅仅更改只读特性而不影响其他的任何特性,则对文件当前的特性和想要更改的特性使用按位操作符。例如:要使文件变成只读的,则要使用逻辑或(|)运算符,如下:
File.SetAttributes(filename,File.GetAttributes(fileName)|FileAttributes.ReadOnly);
如果要删除文件的只读特性,则应该对当前的文件特性和FileAttributes.ReadOnly值按位补执行逻辑与(&)运算。按位补运算就是代字号(~)字符:
File.SetAttributes(filename,File.GetAttributes(fileName)&(~FileAttributes.ReadOnly));
   注释:
       FileAttributes枚举数据类型包含与整数的单个位对应的值。换句话来说,值1对应于ReadOnly,2对应于Hidden特性,4表示System文件等。如果要对文件设置某种特性当时不影响已设置或清零的其他任何特性,则可以简单地将要设置的特性和当前的特性列表示进行逻辑或。例如:如果文件设置了它们的Hidden特性,并且还要将它设置为只读,那么使用前面展示的代码。如果将这些值看作位,则会看到以下内容:
0 0 1 1 = 当前内容
0 0 0 1 = FileAttributes.ReadOnly
0 0 1 1 = 当前 | ReadOnly
注意如果 Hidden特性最初值为0,那么它仍然为0,因为0|0 = 0.然后,如果是FileAttibutes.Hidden值变为0,首先必须使用FileAttributes.Hidden值得按位补,并将它和当前的属性列表进行逻辑或(&)。按位补是将所有的1更改为0并将所有0变成1的结果:
0 0 1 1 = 当前特性
1 1 0 1 = FileAttributes.Hidden的当前特性
0 0 0 1 = 当前和Hidden取补
尽管可以对.Net框架中其他任何枚举数据类型使用这项技术,但是必须确表枚举的值遵守为标志模式。如果值不属于2的n次方范围,那必须采用不同的方法。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值