文件夹下迭代查询文件

客户需求】:由于客户需要查询的图片太多(每天好多张),通过文章登记或者附件上传太麻烦,想要通过FTP上传到服务器中,然后在前台查询,将图片显示出来。但图片太多,每天上传,为了管理方便,每天新建一个文件夹,直接将文件夹中的图片上传,而该文件夹下又有若干层和若干个子文件夹。

分析】:文件夹不确定,文件夹名字也不确定,甚至图片的格式也不确定,而用户输入一个图片编号(图片名字,如:_20140926135.JPG 编号:20140926135),则需要将所在文件夹中的图片编号和图片显示出来。那么则需要将指点文件夹下的图片文件拿出来一一比对,找到编号相同的图片文件,如果没有找到,则显示“没有该编号的记录”。

解决方案】:在方法中递归地去文件夹中搜索文件,直到文件夹下没有文件了为止。如图所示:

返回文件的路径。

部分代码:

    /// <summary>
    /// 查找指定文件夹下指定后缀名的文件
    /// </summary>
    /// <param name="directory">文件夹</param>
    /// <param name="pattern">后缀名</param>
    /// <returns>文件路径</returns>
    public List<string> GetFiles(DirectoryInfo directory, string pattern)
    {


        if (directory.Exists || pattern.Trim() != string.Empty)
        {
            try
            {
                foreach (FileInfo info in directory.GetFiles(pattern))
                {
                    result.Add(info.FullName.ToString());
                }
            }
            catch { }
            foreach (DirectoryInfo info in directory.GetDirectories())
            {
                GetFiles(info, pattern);
            }
        }
        return result;
    }

效果如图所示:

DEMO下载,演示:
http://download.csdn.net/detail/u011397689/8088203

 

转载于:https://www.cnblogs.com/wjszxli/p/4026989.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,我们可以利用递归的方式遍历文件夹中的所有文件。具体步骤如下: 1. 创建一个函数,命名为"遍历文件夹",函数接收一个文件夹路径作为参数。 2. 在函数内部,使用`opendir`函数打开文件夹,并将返回的指针保存起来。 3. 使用`readdir`函数读取文件夹中的所有文件。 4. 对于每一个读取到的文件判断其类型。若为目录,则递归调用"遍历文件夹"函数,传入子文件夹的路径。若为文件,则进行相应的处理。 5. 使用`closedir`函数关闭文件夹。 6. 递归结束条件为文件夹中没有子文件夹文件。 以下是一个简单的示例代码: ```cpp #include <iostream> #include <string> #include <dirent.h> void 遍历文件夹(const std::string& 文件夹路径) { DIR* 文件夹指针 = opendir(文件夹路径.c_str()); if (文件夹指针 == NULL) { std::cout << "无法打开文件夹: " << 文件夹路径 << std::endl; return; } dirent* 文件; while ((文件 = readdir(文件夹指针)) != NULL) { std::string 文件名 = 文件->d_name; if (文件名 == "." || 文件名 == "..") { continue; } std::string 文件路径 = 文件夹路径 + "/" + 文件名; if (文件->d_type == DT_DIR) { 遍历文件夹(文件路径); } else if (文件->d_type == DT_REG) { std::cout << "找到文件: " << 文件路径 << std::endl; } } closedir(文件夹指针); } int main() { std::string 文件夹路径 = "/path/to/folder"; 遍历文件夹(文件夹路径); return 0; } ``` 以上代码可以遍历指定文件夹下的所有文件,并将文件路径输出到标准输出。你可以根据实际需求在文件类型判断的部分进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值