通过搜索字符串的文件会导致错误
问题描述:
当我通过我的本地驱动器的字符串搜索文件它显示了以下错误,并停止搜索further.The原因是某些文件被使用的OS当搜索是windows的正在进行中。如何克服这一点。通过搜索字符串的文件会导致错误
过程不能访问该文件“C:\的hiberfil.sys”,因为它正由另一个进程(休眠文件)。
TextReader rff = null;
rff = new StreamReader(fi.FullName);
try
{
String lne1 = rff.ReadToEnd();
if (lne1.IndexOf(txt) >= 0)
{
z = fi.FullName;
list22.Add(fi.FullName);
答
C:\的hiberfil.sys是被锁定不能读取系统文件。因为这个,你将无法阅读它。在尝试打开文件之前,没有可以通过c#调用的方法来确定文件是否被锁定,所以在试图打开它时放置Try/Catch块,如果它抛出异常,就继续下一个文件。
TextReader rff = null;
try
{
rff = new StreamReader(fi.FullName);
String lne1 = rff.ReadToEnd();
if (lne1.IndexOf(txt) >= 0)
{
z = fi.FullName;
list22.Add(fi.FullName);
答
您应该缩小搜索通配符来避免撞上系统或锁定的文件,或者你总是会得到这个例外。在.NET 4.0中,您可以使用将执行搜索的EnumerateFiles方法,您可以使用catch the exception。
+0
我已经使用枚举文件的方法仍然无法解决此问题... – araf 2011-03-13 22:11:42
我们需要看到你的代码。无论如何你都不应该试图打开系统文件。 – 2011-03-13 21:53:22