【问题标题】:Recognize file type in C++在 C++ 中识别文件类型
【发布时间】:2012-05-21 23:38:27
【问题描述】:

我为该问题实现了一个解决方案,旨在跨平台并遵循 C++ 标准库。

bool isdir(const char *string) {
   ofstream file(string, ios::out);
   return file.fail();
}

然而,如果文件实际上是可写的,程序会在其工作目录中打开一个名称为string 的空文件。 我怎样才能防止这种情况发生?

【问题讨论】:

  • 您可能应该使用操作系统特定的功能来实现它。您可以将其以只读方式打开,但这也行不通。如果路径是一个没有读取权限的文件,你的算法将表明它是一个目录。
  • @Stencil 没有。 C++ 标准不了解文件系统。
  • 如果你想要可移植性,boost::filesystem 可能是最好的。
  • 请注意,file永远不会成为NULL。你可以用is_open检查文件是否打开。

标签: c++


【解决方案1】:

在 C++ 中没有检测文件是否为目录的标准方法。但是你可以使用Boost.Filesystem。携带方便。

编辑:看来这个问题here已经回答过了。

【讨论】:

    猜你喜欢
    • 2011-06-02
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    相关资源
    最近更新 更多