日期:2014-5-18 浏览次数:20270次

遍历指定文件夹找到指定的文件(急等)
遍历指定文件夹找到指定的文件,该文件在指定文件夹的子文件夹里   记录该文件完整路径   因为实现要链接打开   不知道如何实现

------解决方案--------------------
遍历比较。
------解决方案--------------------
参考代码如下:
只要稍微改动一下,就可以实现楼主想要的功能


using System.IO;

///
/// 取得指定路径下所有目录及文件名称(可递归)
///
/// 指定路径
/// 要与 strDir 中的文件名匹配的搜索字符串
/// 例:
/// “*.abc*”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。
/// “*.abcd”只返回扩展名为 .abcd 的文件。
/// “*.abcde”只返回扩展名为 .abcde 的文件。
/// “*.abcdef”只返回扩展名为 .abcdef 的文件。
///
/// 查询得到的所有目录ArrayList
/// 查询得到的所有文件名称ArrayList
/// 是否递归查询
private void GetFileList(string strDir, string strFilePattern, ArrayList arrDirs,
ArrayList arrFiles, bool bIsRecursive)
{
if (string.IsNullOrEmpty(strDir))
{ // 参数正确性检查
return;
}

try
{
// 取得指定路径下所有符合条件的文件
string[] strFiles = Directory.GetFiles(strDir, strFilePattern);
// 取得指定路径下所有目录
string[] strDirs = Directory.GetDirectories(strDir);

foreach (string name in strFiles)
{ // 将所有文件名称加入结果ArrayList中
arrFiles.Add(name);
}

foreach (string name in strDirs)
{ // 将所有目录加入结果ArrayList中
arrDirs.Add(name);
}

if (bIsRecursive)
{ // 递归
if (strDirs.Length > 0)
{
foreach (string dir in strDirs)
{ // 递归遍历所有文件夹
GetFileList(dir, strFilePattern, arrDirs, arrFiles,sRecursive);
}
}
}

}
catch
{// 异常处理
}
}
------解决方案--------------------
DirectoryInfo.GetFiles()方法 + 递归就可以了
------解决方案--------------------
private void getDirectories(string path)
{
string[] fileNames = Directory.GetFiles(path);
string[] directories = Directory.GetDirectories(path);
foreach (string file in fileNames)
{
Console.WriteLine( "Filename:{0} ", file);
}
foreach (string dir in directories)
{
Console.WriteLine( "Directoriesname:{0} ", dir);
getDirectories(dir);
}
}
------解决方案--------------------
//文件夹路径
string FolderPath = Server.MapPath( "../../../ZedGraphImages ");
DirectoryInfo di = new DirectoryInfo(FolderPath);
foreach (FileInfo file in di.GetFiles())
{
if (file.LastWriteTime.ToString( "yyyy-MM-dd ") != DateTime.Now.ToString( "yyyy-MM-dd "))
{
File.Delete(FolderPath + "/ " + file.Name);
}
}