有啥方法可以检查文件是不是存在,文件名包含正则表达式

Posted

技术标签:

【中文标题】有啥方法可以检查文件是不是存在,文件名包含正则表达式【英文标题】:Is there any way to check whether a file exist with a file name contains regular expression有什么方法可以检查文件是否存在,文件名包含正则表达式 【发布时间】:2013-10-05 00:10:37 【问题描述】:

给定您要搜索的路径,并且文件名包含正则表达式,有没有办法检查该路径下是否存在满足文件名模式的文件?在 C++ 中??例如: 路径下

/path

我想搜索文件“foo.*”

foo.* 

结果可能是 foo.1 或 foo.2 或其他。我想得到结果(我的意思是我想知道文件是否存在以及确切的文件名),谢谢

【问题讨论】:

您要查找的搜索词是"glob"。在 Linux-y 系统上,请参阅 glob。在 Windows 上,FindFirstFile 等人。 您的意思是 foo 后接任何内容(正则表达式)还是 foo 后接点后接任何内容(glob)? 请记住,任何此类问题的答案一经获得即已过时 - 如果创建了新文件怎么办? @IgorTandetnik 谢谢,“glob”似乎是我正在寻找的东西 【参考方案1】:

查看boost::filesystem,否则你需要查看你的操作系统的api。

这是一个例子(未经测试):

boost::filesystem::path dir("/path");
boost::filesystem::directory_iterator it(dir), end;
BOOST_FOREACH(const boost::filesystem::path& p, std::make_pair(it, end))

    if(boost::filesystem::is_regular_file(p))
    
        if(p.stem().string() == "foo")
        
            std::cout << p.extension() << '\n';
        
    

【讨论】:

以上是关于有啥方法可以检查文件是不是存在,文件名包含正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

检查文件中是不是存在所有多个字符串或正则表达式

Pandas Dataframe 使用正则表达式检查值是不是存在

正则表达式检查是不是存在确切的字符串

有啥方法可以测试并给出真/假语句以查看文件是不是存在,Python [重复]

检查是不是存在与正则表达式匹配的数组键

修改给定的正则表达式以检查字符串是不是不包含电话号码