【问题标题】:Open a .dat file regardless of name in C无论 C 中的名称如何,打开一个 .dat 文件
【发布时间】:2017-01-28 12:03:38
【问题描述】:

c 中有没有一种方法可以读取 .dat 文件而不管名称如何,例如说我有一个文件 a.dat,然后我将其更改为 b.dat。有没有办法让这个文件无论如何都会被读取。例如:

FILE *fp = fopen(".dat", "r");

读入这些文件中的任何一个,如果没有,这样做的方法是什么。 提前谢谢你。

【问题讨论】:

  • 如果b.datc.dat 都存在怎么办?如果将其重命名为完全不同的目录或文件系统会怎样?
  • 您可以使用readdir() 实现文件查找并决定如何处理每个找到的文件
  • 当你重命名它时,你可以创建一个符号链接。
  • fopen 采用隐式文件名或路径+文件名。您将不得不在此功能之外(即在程序逻辑中)管理多个文件。
  • 如果您只需要读取这个文件,您可以在其他地方(在 TEMP 目录中)复制一份,然后从那里打开。

标签: c file fopen


【解决方案1】:

这样的东西应该可以工作并检查文件扩展名:

  struct dirent *dent;
  DIR           *dir;

  dir = opendir(directory);
  if (dir != NULL)
    {
      while ((dent = readdir(dir)) != NULL)
        {
            if ((dent->d_type == DT_DIR) && (check_file_extension(dent->d_name, ".dat") == 0))
                do_something_with_your_file(dent->d_name);
        }
       closedir(dir);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2017-04-14
    • 1970-01-01
    相关资源
    最近更新 更多