トップ
新規
一覧
単語検索
最終更新
ヘルプ
ログイン
アールメカブ
ディレクトリ操作dirent.h
をテンプレートにして作成
開始行:
[[Programming]]
[[ここ:http://www.ncad.co.jp/~komata/c-frame.htm]]を参照
ディレクトリ名も取得する必要があれば,[[hidden_dir_h]]
#include<stdio.h>
#include<dirent.h>
void main(argc,argv)
int argc;
char*argv[];
{
DIR *dir;
struct dirent *dp;
char path[512]; // ディレクトリは引数から判断する.
if(argc<=1){
strcpy(path,".");
}
else{
strcpy(path,argv[1]);
}
if((dir=opendir(path))==NULL){
perror("opendir");
exit(-1);
}
for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)){
printf("%s\n",dp->d_name);// ディレクトリ名は表示しない
}
closedir(dir);
}
ほかに[[こんな情報:http://f4.aaa.livedoor.jp/~pointc/log1...
#include <stdio.h>
#include <dirent.h>
int main(argc,argv)
int argc;
char *argv[];
{
DIR *dir;
struct dirent *dp;
char path[257];/*指定したディレクトリ名を入れる*/
int f_count = 0;/*ファイル数カウント用*/
char (*f)[33];/*ファイル名を保存する配列*/
int i;/*↑の配列の添え字用*/
if(argc!=2){
printf("コマンドラインの入力形式が間違っています\...
printf("test_readdir02 入力ファイル名\n");
exit(-1);
}else{
/*コマンドライン引数よりディレクトリ名を指定*/
strcpy(path,argv[1]);
}
/*ディレクトリを開く*/
if((dir=opendir(path))==NULL){
perror("opendir");
exit(-1);
}
/*ファイル数をカウントする*/
while ((readdir(dir)) != NULL) {
f_count++;
}
printf("f_count=%d\n",f_count);
/*★★★ここでポインタを先頭に★★★*/
rewinddir(dir);
/*ファイル名を入れる配列を確保する*/
f = (char (*)[33])malloc((f_count-2) * 33);
/*ファイル名を配列にコピーする*/
i=0;
for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)){
strcpy(f[i], dp->d_name);
printf("%s\n",f[i]);
i++;
}
closedir(dir);
/*記憶域を開放*/
free(f);
return;
}
終了行:
[[Programming]]
[[ここ:http://www.ncad.co.jp/~komata/c-frame.htm]]を参照
ディレクトリ名も取得する必要があれば,[[hidden_dir_h]]
#include<stdio.h>
#include<dirent.h>
void main(argc,argv)
int argc;
char*argv[];
{
DIR *dir;
struct dirent *dp;
char path[512]; // ディレクトリは引数から判断する.
if(argc<=1){
strcpy(path,".");
}
else{
strcpy(path,argv[1]);
}
if((dir=opendir(path))==NULL){
perror("opendir");
exit(-1);
}
for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)){
printf("%s\n",dp->d_name);// ディレクトリ名は表示しない
}
closedir(dir);
}
ほかに[[こんな情報:http://f4.aaa.livedoor.jp/~pointc/log1...
#include <stdio.h>
#include <dirent.h>
int main(argc,argv)
int argc;
char *argv[];
{
DIR *dir;
struct dirent *dp;
char path[257];/*指定したディレクトリ名を入れる*/
int f_count = 0;/*ファイル数カウント用*/
char (*f)[33];/*ファイル名を保存する配列*/
int i;/*↑の配列の添え字用*/
if(argc!=2){
printf("コマンドラインの入力形式が間違っています\...
printf("test_readdir02 入力ファイル名\n");
exit(-1);
}else{
/*コマンドライン引数よりディレクトリ名を指定*/
strcpy(path,argv[1]);
}
/*ディレクトリを開く*/
if((dir=opendir(path))==NULL){
perror("opendir");
exit(-1);
}
/*ファイル数をカウントする*/
while ((readdir(dir)) != NULL) {
f_count++;
}
printf("f_count=%d\n",f_count);
/*★★★ここでポインタを先頭に★★★*/
rewinddir(dir);
/*ファイル名を入れる配列を確保する*/
f = (char (*)[33])malloc((f_count-2) * 33);
/*ファイル名を配列にコピーする*/
i=0;
for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)){
strcpy(f[i], dp->d_name);
printf("%s\n",f[i]);
i++;
}
closedir(dir);
/*記憶域を開放*/
free(f);
return;
}
ページ名: