当前位置: 首页 > 知识库问答 >
问题:

查找以特定字符串开头的文件[重复]

鲜于喜
2023-03-14

我想知道如何检查文件是否存在:

例如,我有很多文件:

Boba.txt
James.txt
Jamy.txt
Boby.txt 

如何检查以Bob开头的文件是否存在?

共有3个答案

姚永年
2023-03-14

您可以使用fopen作为只读"r"打开文件。如果文件不存在,fopen将返回一个NULL指针。您可以对程序所需的任何文件执行此操作。

#include <cstdio>
int main ()
{
  FILE **pFile;
  pFile[0] = fopen ("Boba.txt","r");
  pFile[1] = fopen ("Boby.txt","r");
  if (pFile[0]!=NULL || pFile[1]!=NULL){
    printf("File starting with \"bob\" exists.");
  }
  else printf("File does not exist."); 
  return 0; 
}
卫博雅
2023-03-14

假设您需要在C中执行此操作,那么boost::filesystem库可能非常有用。在这种情况下,您的问题可以通过此处发布的解决方案的变体来解决。在您的情况下,不需要std::multimap,只需使用simple。

山翼
2023-03-14

注意,我假设您在Windows系统上,并且文件位于同一目录中。

您可以使用FindFirstFile和FindNextFile函数来迭代目录。前缀可以包含在搜索词中。

示例

std::string strSearch = "C:\\Some Directory\\Bob*";
WIN32_FIND_DATAA ffd;
HANDLE hFind = FindFirstFileA(strSearch .c_str(), &ffd);

do
{
    std::string strFile = ffd.cFileName;
}
while (FindNextFileA(hFind, &ffd) != 0);

正确的错误检查和如何处理目录留给读者作为练习。

 类似资料:
  • 这是我的浏览方法。我正在尝试通过“dictionaryEntry”对象的哈希图进行搜索,只查看条目的“word”部分。(b.word)。这个想法是您可以搜索整个字典并返回所有以给定方法的字符串开头的单词。例如,您可以返回所有以字符串“sto”开头的单词。我的想法是遍历哈希图,如果单词的子字符串,从位置零开始并以输入字符串的长度结束,它将被添加到数组列表中。然后将返回数组列表。

  • 问题内容: 我想在elasticsearch中编写一个查询,这样它只会给出字符串从特定单词开始的结果,例如,如果我要搜索“ Donald”,则我现在有一个字符串“ Donald Duck”,而另一个字符串是“ Alan Donald” “与以下查询 那么结果应该是“ Donald Duck”而不是“ Alan Donald”,因为在“ Donald Duck”中,它以“ Donald”开头。现在有

  • 问题内容: 我有一个div,其中可能有来自多个组的任何数量的类。每个组都有一个特定的前缀。在javascript中,我不知道该群组中的哪个类位于div上。我希望能够清除具有给定前缀的所有类,然后添加一个新的类。如果要删除所有以“ bg”开头的类,该怎么做?像这样的东西,但实际上有效: 问题答案: 使用jQuery,实际的DOM元素的索引为零,这应该可以工作

  • 问题内容: 我正在尝试更新数据库中的一堆列,以测试功能。我有一个使用休眠模式构建的表,因此为嵌入式实体创建的所有列均以相同的名称开头。即,等等。 我试图找出是否有办法对以下事情产生影响: 如果没有,我知道我可以做很长的路要走,如果我需要针对另一组不同的栏目再次进行此操作,则只是寻找一种将来可以帮助自己的方法。 问题答案: 没有方便的快捷方式,对不起。如果您必须做很多这样的事情,则可以创建一个函数来

  • 问题内容: 我正在尝试检查字符串是否以开头。我该如何检查? 问题答案: 使用 substr 函数返回字符串的一部分。 如果您要确保它不是另一个协议。我会改用https,因为https也可以匹配,例如http-protocol.com。 一般而言:

  • 我得到以下字符串: 我想从里面拿走食物和饮料。 我尝试了以下代码: 但它给人的感觉是,食物很刺激,喝了很多,离食物很近,三个和四个。