【问题标题】:how can I know if I'm pointing on file or directory in c [closed]我怎么知道我是否指向c中的文件或目录[关闭]
【发布时间】:2012-10-15 12:44:33
【问题描述】:

我们被要求编写 ac 程序,将所有内容从 dir 复制到另一个,即使它有嵌套目录....我可以将文件从目录复制到另一个,但问题是我怎么知道我现在指向另一个目录,我应该访问它并将文件放入其中...?

我主要使用opendir、closeir和read dir

【问题讨论】:

  • 您是否查看过您需要使用的功能的手册页?您能否提供一个简短的示例来说明您尝试过的操作?
  • 先贴出你用来复制一个目录下所有文件的函数。然后你会看到(或者有人会强调你)你只需要在函数中添加第二个循环来递归地为每个子文件夹调用它。 (顺便说一下,作业标签已弃用)
  • 这是什么操作系统?我假设Linux?请为使用的操作系统添加标签。

标签: c directory


【解决方案1】:

您可以使用stat() 来确定文件系统对象的类型。请注意,stat() 接受文件的路径,因此您需要构造要查询的文件系统对象的路径,而不是仅使用由 readdir() 返回的 struct dirent*d_name 成员。

【讨论】:

    【解决方案2】:

    作为第一种方法,检查您的环境是否支持dirent 结构中的d_type 字段。如果失败,您需要为每个文件调用stat()

    【讨论】:

    • +1 我不知道d_type 字段(尽管它并不总是可用)。
    • 实际上它支持 d_type.... 我的朋友告诉我应该使用它,但抱歉...我不知道“如何使用它”的语法
    猜你喜欢
    • 2012-09-21
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多