要想查询某一目录中所有文件,找到一个就输出文件名,我写了以下代码,请大家帮我改正下,谢谢!static void FindFile(string path)
{
try
{
foreach (string d in Directory.GetDirectories(path))
{
foreach (string f in Directory.GetFiles(d))
{
FileInfo fi = new FileInfo(f);
Console.WriteLine("{0}", Directory.GetFiles(path));
}
FindFile(d); //递归查询
}
}
catch
{
}
{
try
{
foreach (string d in Directory.GetDirectories(path))
{
foreach (string f in Directory.GetFiles(d))
{
FileInfo fi = new FileInfo(f);
Console.WriteLine("{0}", Directory.GetFiles(path));
}
FindFile(d); //递归查询
}
}
catch
{
}
foreach (string fileName in Directory.GetFiles(folderPath,"*.*",SearchOption.AllDirectories))
{
FileInfo newFile = new FileInfo(fileName);
}
static void FindFile(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
if (!di.Exists)
{
Console.WriteLine("The path :" + path + "is not exist!");
return;
}
try
{ foreach (FileInfo f in di.GetFiles())
Console.WriteLine(f.FullName);
foreach (DirectoryInfo d in di.GetDirectories())
FindFile(di.FullName);
}
catch
{
}
}
//Console.WriteLine("{0}", Directory.GetFiles(path)); 这个输出有点问题...foreach (string d in Directory.GetDirectories(path))
{
if(File.Exists(d))
{
ProcessFile(path);
}
else if(Directory.Exists(d))
{
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} is not a valid file or directory.", d);
}
}
public static void ProcessDirectory(string targetDirectory)
{ string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName); string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}public static void ProcessFile(string path)
{
Console.WriteLine("file:{0}", path);
}
两种方式都可以,MSDN上搜索下DirectoryInfo..::.GetFileSystemInfos 方法 和 Directory..::.GetDirectories 方法 (String) ,例子都还不错
try
{
DirectoryInfo dir = new DirectoryInfo(directory); if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
} // Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos(); Console.WriteLine("Working..."); // Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos);}
catch (Exception e)
{
Console.WriteLine(e.Message);
}static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo)
{
// Check the FSInfo parameter.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
} // Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{ // Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i; // Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos());
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
Console.WriteLine("file:{0}", i.ToString());
}
}
}