1. ホーム
  2. c

[解決済み] ファイル->d_nameをCの変数に入れる。

2022-02-11 02:57:49

質問

あるプログラムについて問題があります。 私はフォルダの中のファイル名を取って変数に入れる必要があります。 私はそれを試してみました。

#define _POSIX_SOURCE
#include <dirent.h>
#include <errno.h>
#include <sys/types.h>
#undef _POSIX_SOURCE
#include <stdio.h>

int main()
{
    DIR *dir;
  struct dirent *file;
  char fileName;
  dir = opendir("../../incoming");

    while ((file = readdir(dir)) != NULL)
    printf("  %s\n", file->d_name);
    fileName = file->d_name;
    printf(fileName);
    closedir(dir);
    return 0;
}

サックス

解決方法は?

ファイル名を変数 'fileName' に読み込んでから、その変数を処理したいのだと思います。 2つの部分を修正します。

  1. fileName の型は、assign 用の struct メンバと同じにする。
  2. whileループ......。

    int main(){
      DIR *dir;
      struct dirent *file;
      char fileName[255];
      dir = opendir("../../incoming");
        while ((file = readdir(dir)) != NULL)
        {
            printf("  %s\n", file->d_name);
            strncpy(fileName, file->d_name, 254);
            fileName[254] = '\0';
            printf("%s\n", fileName);
        }
        closedir(dir);
    return 0;
    }