ファイルへのパスを作成する必要があります。私は次のクラスメソッドを持っています:
void Directory::scanDirectory(char *directory) {
DIR *dirp;
struct dirent *entry;
char path[1];
if(dirp = opendir(directory)) {
while(entry = readdir(dirp)) {
if (entry->d_name[0] != '.') {
strcpy(path, directory);
strcat(path, "/");
strcat(path, entry->d_name);
if (entry->d_type == 8) {
// Files
} else if (entry->d_type == 4) {
//scanDirectory(path);
}
printf("Name: %s, Type: %d\n", entry->d_name, entry->d_type);
}
}
closedir(dirp);
}
}
ディレクトリと を連結して、ファイルへのパスを作成する必要がありますentry->d_name
。このコードを実行しようとすると、セグメンテーション違反が発生します。私が言えることから、パスを構築する時点でセグメンテーション違反が発生しています。これを行うより良い方法はありますか?