【C言語】カレントディレクトリ内のすべてのファイルとフォルダを一覧表示するプログラムの作り方
ファイルとは
ファイルとは、レコード(データ)の集まりであり、ハードディスク上にデータを恒久的に保存するための場所のことです。C言語では、標準ライブラリが提供するコマンド(関数)を使うことで、さまざまな方法でファイルにアクセスできます。
ファイルに対する主な操作
C言語でファイルに対して実行できる基本操作は、以下の5つです。
- ファイル名の指定(ネーミング)
- ファイルを開く
- ファイルから読み込む
- ファイルへ書き込む
- ファイルを閉じる
基本構文
ファイルポインタの宣言とファイルを開くための構文は、それぞれ以下のとおりです。
FILE *ファイルポインタ;
宣言の例:FILE *fptr;
ファイルポインタ = fopen("ファイル名", "モード");読み込みモードで開く例:fptr = fopen("sample.txt", "r");
FILE *fp;
fp = fopen("sample.txt", "w");ファイルから読み込むための構文は以下のとおりです。
int fgetc( FILE *fp ); // ファイルから1文字を読み込む
ファイルへ書き込むための構文は以下のとおりです。
int fputc( int c, FILE *fp ); // ストリームに1文字ずつ書き込む
ディレクトリ内容を表示するロジック
プログラムが保存されているカレントディレクトリ内のファイルやフォルダを一覧表示するには、dirent.hヘッダで定義されているopendir()、readdir()、closedir()というディレクトリ操作用の関数を使用します。基本的な処理の流れは以下のとおりです。
dr = opendir(".");
if(dr!=NULL){
printf("List of Files & Folders:-\n");
for(d=readdir(dr); d!=NULL; d=readdir(dr)){
printf("%s\n", d->d_name);
}
closedir(dr);
}まずopendir(".")でカレントディレクトリを開き、戻り値がNULLでないことを確認します。その後、readdir()がNULLを返すまで(=エントリがなくなるまで)ループを回し、各エントリの名前d_nameを順番に出力します。最後にclosedir()でディレクトリを閉じてリソースを解放します。
サンプルプログラム
以下は、ディレクトリ内のファイルとフォルダをすべて表示するCプログラムの完全な例です。
#include<stdio.h>
#include<conio.h>
#include<dirent.h>
int main() {
struct dirent *d;
DIR *dr;
dr = opendir(".");
if(dr!=NULL) {
printf("List of Files & Folders:-\n");
for(d=readdir(dr); d!=NULL; d=readdir(dr)) {
printf("%s\n", d->d_name);
}
closedir(dr);
}
else
printf("\nerror while opening the directory!");
getch();
return 0;
}なお、このプログラムはPOSIX準拠のdirent.hを使用しているため、LinuxやUNIX系環境で動作します。conio.hのgetch()はWindows(Turbo Cなど)固有の関数なので、Linux環境でコンパイルする場合は削除するか、getchar()に置き換えてください。
実行結果
上記のプログラムをコンパイルして実行すると、カレントディレクトリ内のファイルとフォルダの一覧が次のように出力されます。
List of Files & Folders:- . .. accessing array.c accessing array.exe accessing array.o bhanu.txt C Programs convert 2 digit no into english word.c convert 2 digit no into english word.exe convert 2 digit no into english word.o DATA delete vowels in string.c delete vowels in string.exe delete vowels in string.o emp.txt EVEN ex.c ex.exe ex.o example pro.c example pro.exe example pro.o fibbinoci serie.c fibbinoci serie.exe fibbinoci serie.o file file example1.c file example1.exe file example1.o file example2.c file example2.exe file example2.o implicit conversion.c implicit conversion.exe implicit conversion.o leap year.c leap year.exe leap year.o little n big endian.c little n big endian.exe little n big endian.o work out examples
出力には「.」(カレントディレクトリ自身)と「..」(親ディレクトリ)も含まれる点に注意してください。これらを除外したい場合は、d_nameが「.」および「..」と一致したときにcontinueでスキップする処理を追加するとよいでしょう。
-
Androidでファイルやフォルダを見えなくする方法|ピリオドの付け方と隠しアプリ活用術
Androidスマホでファイルやフォルダを人目から隠したいと思ったことはありませんか?画面ロックをかければ覗き見を防げますし、フォルダにパスワードを設定すれば不正アクセスも阻止できます。しかし、さらに一歩進んで、ファイルやフォルダそのものを「見えなくする」ことができたらどうでしょう。 この記事では、Android OSの仕組みを利用した簡単なトリックと、便利なアプリを使った方法の2つをご紹介します。 Androidでファイルやフォルダを非表示にする手順 まず、このトリックを実行するにはファイル管理アプリ(ファイラー)が必要です。普段使い慣れたお気に入りのアプリでも問題ありませんが、始める前に
-
Androidスマホでファイルやフォルダを非表示にする方法|名前の先頭に「.」を付けるだけの簡単テクニック
「プライバシーは生まれながらにして持つ権利である」。私たちには、スマートフォンやパソコンの中にあるファイルやフォルダを他人に見られないように隠す権利があります。法律に触れるものでない限り、何かを秘密にしておくこと自体は決して悪いことではありません。 この記事では、Androidスマートフォンでファイルやフォルダを非表示にする方法を詳しく解説します。なお、写真を隠したい場合やアプリそのものを隠したい場合は、それぞれ別の方法が必要になるので注意してください。 隠せるファイルは、画像・ドキュメント・音声・動画など何でも構いません。もちろん、端末にロックをかけたり、フォルダにパスワード保護を設定したり