对文件拒绝访问
由于有个项目的类库里面的类的参数增加了,需要对大量的.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 编辑 ]








