0
私は初心者のCプログラマです。 私はdirを開き、それらのファイルの名前を読み込み、statを使ってそれらのファイルに関する情報を与えようとしています。ここでは、それらがディレクトリかファイルかを調べようとしています。後日、変更された時間とファイルのサイズなどを取得します。現在、私は1つのレベルしか取得していません。および..ファイル。どうして?ディレクトリにアクセスするためのDIRポインタとファイル情報を
./check Dirc
whats in Dirc
two dir and two files
Program/ ProgramX/ test test2
Dir *ptrDir;
struct dirent *stDir;
struct stat buff;
if(ptrDir = opendir(argv[1]) !=NULL){
printf("%s\n",argv[1]);
while((stDir = readdir(ptrDir)) != NULL){
if(stDir->d_name[0] !='.'){//i dont want the hidden files
if((stDir->d_name, &buff) == -1){ perror("stat broke");}
printf("stDir name: %s\n", stDir->d_name);
switch(buff.st_mode &s_IFMT){
case S_IFDIR: printf("Directory\n"); break;
case S_IFREG: printf("File\n"); break;
default: print("default\n");
}
}
}
}
OutPut:
Data:
stDir name: Program
stat broke: No such file or directory
Expected OutPut:
OutPut:
Data:
stDir name: Program
Directory
stDir name: ProgramX
Directory
stDir name: test
File
stDir name: test2
File
私はそれを理解しました。私はmanページをよく読んでいたはずです。私はファイルを知っていた場所に基づいてパスを構築しました。したがって私はstrcpyとstrcatをたくさん使っていました。 – humbleSquid