文件夹C:\ Users包含3个子文件夹:
C:\Users\hacen
C:\Users\_rafi_000
C:\Users\Public
然而,当我打电话时:
DirSearch(@"C:\Users\", "*.jpg");
它从Public和hacen输出所有jpg文件名,但不从 _rafi_000 输出,这是当前用户的文件夹。
这是功能:
static void DirSearch(string dir, string pattern)
{
try
{
foreach (string f in Directory.GetFiles(dir, pattern))
{
Console.WriteLine(f);
}
foreach (string d in Directory.GetDirectories(dir))
{
DirSearch(d, pattern);
}
}
catch (System.Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
修改
我尝试使用下面的代码并且它有效。所以这不是访问被拒绝的问题:
DirSearch("C:\Users\_rafi_000\","*.jpg");
到目前为止我注意到的是,与其他子文件夹不同,当我按F2
时,文件夹_rafi_000无法命名答案 0 :(得分:0)
可能与jpg的存储位置以及重新分析点在以后的Windows版本中的工作方式有关。
我建议看看:
目录搜索:http://msdn.microsoft.com/en-us/library/bb513869.aspx
重新分析点信息:http://msdn.microsoft.com/en-us/library/aa365503(VS.85).aspx
我运行了你的代码,它在Windows XP中运行良好:
C:\Users\hacen\bar.jpg
C:\Users\Public\bar1.jpg
C:\Users\_rafi_000\bar2.jpg
答案 1 :(得分:0)
这会有用吗?
void DirSearch(string dir, "*.JPG")
{
foreach (string f in Directory.GetFiles(dir, "*.JPG"))
{
Console.WriteLine(f);
}
foreach (string d in Directory.GetDirectories(dir))
{
DirSearch(d);
}
}
答案 2 :(得分:-1)
您的代码是正确的。 或许Process Monitor可以提供帮助吗?
如果代码正常,则必须是其他内容。我知道您可以直接针对导致问题的目录运行代码(这很令人惊讶) - 但我认为Process Mon可以提供帮助。