对文件拒绝访问
由于有个项目的类库里面的类的参数增加了,需要对大量的.cs页面里面进行修改,小弟就写了一个工具代码如下:
查找按钮的代码:
程序代码:
listBox1.Items.Clear(); DirectoryInfo directoryinfo = new DirectoryInfo(textBox1.Text.Trim()); FileInfo[] file = directoryinfo.GetFiles(textBox2.Text.Trim(), SearchOption.AllDirectories); foreach (FileInfo filename in file) { listBox1.Items.Add(filename.FullName); }修改按钮的代码:
程序代码:
listBox2.Items.Clear(); for (int i = 0; i < listBox1.Items.Count; i++) { FileInfo file = new FileInfo(listBox1.Items[i].ToString()); if ((file.Attributes & FileAttributes.ReadOnly) == 0) { file.Attributes = ~FileAttributes.ReadOnly; file.Refresh(); } try { StreamReader sw = new StreamReader(listBox1.Items[i].ToString(), Encoding.Default); string th = Regex.Replace(sw.ReadToEnd(), "ShowDivWindow\\((.*),(.*),(.*),(.*),", new MatchEvaluator(TiHuan)); sw.Dispose(); sw.Close(); StreamWriter swr = new StreamWriter(listBox1.Items[i].ToString(), false, Encoding.Default); swr.Write(th); swr.Flush(); swr.Close(); listBox2.Items.Add(listBox1.Items[i].ToString() + " 修改成功"); } catch (Exception exs) { listBox2.Items.Add(exs.Message); } } MessageBox.Show("替换成功!");
static string TiHuan(Match m) { return m.ToString() + "'true','true',"; }由于程序和代码管理器绑定,先判断是否是只读属性,是的话就取消,测试后好像取消不了,不知道什么原因。。。。。。
之后就独立把文件复制出来,把文件的只读属性手工取消了,可恶的是,替换的时候,xxxx.cs文件拒绝访问,而且xxxx.cs文件消失了。。。
万高手帮小弟下!非常感谢!
[ 本帖最后由 等待冰柠檬 于 2010-11-6 09:31 编辑 ]