博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

修改指定文件只读属性

Posted on 2013-12-03 10:25  生命如风  阅读(566)  评论(0编辑  收藏  举报

tfs获取到的代码全部都是只读的,但是有些文件需要读写,项目中这样的文件很多,一个个的修改太麻烦。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.IO;
 6 
 7 namespace SetFileAttr
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             DirectoryInfo dir = new DirectoryInfo(GetDir());
14 
15             IList<string> fileList = new List<string>();
16 
17             GetFileList(dir, fileList);
18 
19             foreach (var item in fileList)
20             {
21                 string extension = System.IO.Path.GetExtension(item);
22 
23                 //设置扩展名为txt xml的只读属性
24                 if (extension.ToUpper() == ".txt".ToUpper() || extension.ToUpper() == ".xml".ToUpper())
25                 {
26                     
27                     FileInfo fileInfo = new FileInfo(item);
28 
29                     //如果为只读,进行设置
30                     if (fileInfo.IsReadOnly)
31                     {
32                         Console.WriteLine(item);
33                         fileInfo.IsReadOnly = false;
34                     }
35                 }
36                
37             }
38             Console.WriteLine("处理完成");
39             Console.ReadKey();
40         }
41 
42         static string GetDir()
43         {
44             return System.Environment.CurrentDirectory;
45         }
46 
47         /// <summary>
48         /// 获取指定文件夹及子文件夹下的所有文件
49         /// </summary>
50         /// <param name="diroot"></param>
51         /// <param name="listFile"></param>
52         private static void GetFileList(DirectoryInfo diroot, IList<string> listFile)
53         {
54             foreach (FileInfo fileName in diroot.GetFiles())
55             {
56                 listFile.Add(fileName.FullName);
57             }
58 
59             foreach (DirectoryInfo dirSub in diroot.GetDirectories())
60             {
61                 GetFileList(dirSub,listFile);
62             }
63         }
64     }
65 }