【问题标题】:renaming, and moving files from a directory using c使用 c 重命名和移动目录中的文件
【发布时间】:2018-04-22 04:45:16
【问题描述】:

我正在开发一个自制的小程序,它将让我的生活变得更轻松。

这个想法是它查看一个目录,查看其中的文件名,从文件名中删除所有某些字符组合和某些字符,然后将新命名的文件复制到一个单独的文件夹,并删除原始文件。

我可以做大部分。我不知道如何将文件名加载到我的程序中我可以弄清楚其他所有内容,因为我知道如何在 C 中操作字符串等等。

我这几天一直在寻找易于实施的解决方案,但一无所获。

tldr:

查看目录 加载所有文件名 根据条件更改所有文件名 将文件复制到新目录。

我真的不知道如何执行第 1、2 或 4 步。

我不指望你们为我编写程序,即使有库和命令建议也很棒。

【问题讨论】:

标签: c


【解决方案1】:

查看一些相关问题:How can I get the list of files in a directory using C or C++? Read file names from a directory

正如本页所述: https://www.geeksforgeeks.org/c-program-list-files-sub-directories-directory/

使用<dirent.h> 模块,这样做:

#include <stdio.h>
#include <dirent.h>

int main(void)
{
    struct dirent *de;  // Pointer for directory entry

    // opendir() returns a pointer of DIR type. 
    DIR *dr = opendir(".");

    if (dr == NULL)  // opendir returns NULL if couldn't open directory
    {
        printf("Could not open current directory" );
        return 0;
    }

    // Refer http://pubs.opengroup.org/onlinepubs/7990989775/xsh/readdir.html
    // for readdir()
    while ((de = readdir(dr)) != NULL)
            printf("%s\n", de->d_name);

    closedir(dr);    
    return 0;
}

将允许您查看目录中的文件和目录。 我想有了这个,你应该很好。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 虽然这在技术上是正确的,但如果指向该技术的链接失效,我认为专门针对单一技术(在本例中为 dirent.h)的答案不会保持有效。技术至少与语言主要参考页面一样容易发生变化。
  • 其意图从来不是批评或要求澄清,而是为他们提供一个如何实现所需行为的可靠示例。我将编辑以包含代码..
猜你喜欢
  • 1970-01-01
  • 2020-04-22
  • 2021-06-05
  • 2021-06-09
  • 2017-10-22
  • 2011-09-10
  • 1970-01-01
  • 2022-05-31
  • 1970-01-01
相关资源
最近更新 更多