http://hpcgi2.nifty.com/lightbox/vector_lightbox.cgi?mid=cmenum&...
Lightbox Info Board
こちらの内容を参考になさってはいかがでしょうか。
応用することで表示も可能かと思います。
上の回答ページの元のページ(トップページ)は、こちらです。
http://www.ncad.co.jp/~komata/c-kouza14.htm
�R���s���[�^�[�FC�����u���F�f�B���N�g�����e�̓ǂݏo��
言語だけでなく、環境も書いて欲しいな。。。
で、UNIXなら標準関数で取得できます。
opendir
readdir
closedir
http://home.a03.itscom.net/tsuzu/programing/tips19.htm
#019 ディレクトリエントリの取得(Win32 API編)
Windowsにはopendir系の関数がありません。
同等の機能は、以下のAPIで実現可能です。
FindFirstFile
FindNextFile
FindClose
http://plaza.harmonix.ne.jp/~fakira/turedure/cprog_01.htm
�v���O���~���O����
またWindowsAPIではなく、VCランタイムにも同様の関数があります。
_findfirst
_findnext
_findclose
「01/04/26(木)」あたりを参照。
もし、MFCを使ってるのならクラスを使っても書けます。
すみませんでした。
使っているOSはLINUXで、コンパイラはgccです。
readdir - ディレクトリ情報の読出し
struct dirent *readdir(DIR *dp);
で取得可能です。
サンプルも参照してください。
ありがとうございます。
http://www.hatena.ne.jp/1118121349
人力検索はてな - C言語で、カレントディレクトリのファイル一覧を表示する、コマンドってありますか?
URLはダミーです。
標準ライブラリの system() 関数はいかがですか。
(system(”ls”)とか)
こういうのでいいのかなあ・・・
ためしてみます。
サンプルを作ってみました
#include ”stdafx.h”
#include ”windows.h”
#include ”stdio.h”
int main(int argc, char* argv[])
{
char dir[512]/*カレントディレクトリ*/,wc[512]/*ワイルドカード付文字列*/;
HANDLE hSearch; //見つかったファイルのハンドル
WIN32_FIND_DATA fd; //検索データ
::GetCurrentDirectory(512,dir); //カレントディレクトリ取得
wsprintf(wc,”%s¥¥*.*”,dir); //ワイルドカード作成
hSearch=::FindFirstFile(wc,&fd); //最初の検索で使用する関数
if(hSearch!=INVALID_HANDLE_VALUE){ //ファイルが見つかったら次の処理
do{
if(strcmp(fd.cFileName,”.”)&&strcmp(fd.cFileName,”..”)){ //カレントフォルダ、親フォルダは無視
if(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY ){
printf(”%s¥¥¥n”,fd.cFileName); //ファイルがディレクトリなら表示に”¥”をつける
}
else{
printf(”%s¥n”,fd.cFileName); //ファイルならそのまま表示
}
}
}
while(::FindNextFile(hSearch,&fd)); //ファイルがなくなるまで継続
}
FindClose(hSearch); //ハンドルを閉じる
return 0;
}
サンプルまで作っていただいて、すみません。
ありがとうございます。
http://www.hatena.ne.jp/awindow?qid=ホニャララ:detail]
URLはダミー 現在回答5閲覧1
一口にC言語といっても、OS等の環境によって変わってくると思います。
質問分の中に「コマンド」という言葉が出てきたのが非常に気になりました。
質問者の方の習熟度合いがつかめません...
ファイルの扱いを習い始めたレベルです。
かなり習熟度は低いです。
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt__...
_findfirst、_findfirst64、_findfirsti64、_wfindfirst、_wfindfirst64、_wfindfirsti64
Windows なら _findfirst() + _findnext() または FindFirst() + FindNext() を使って、指定したディレクトリ内のファイルのリストを取得することができます。
http://x68000.q-e-d.net/~68user/unix/pickup?opendir
UNIXの部屋 検索:opendir
UNIX 系の OS の場合は、opendir() + readdir() で目的のディレクトリ内のファイルのリストを取得することができます。
ありがとうございます。
URLはダミーです。
C言語の関数にそういった機能を持つものはないと思います。方法としては
system(”ls > hoge.txt”);(UNIX)
system(”dir > hoge.txt”);(Windows)
などとして一覧をテキストファイルに書き出してから、それを読み込むというのはどうでしょうか?
ためしてみます。
Yahoo! JAPAN
C言語であるならば・・・
#include <stdio.h>
#include <dirent.h>
void ReadDir (char *);
int main (int argc,char *argv[]) {
ReadDir(”C:¥¥”);
return(0);
}
void ReadDir (char *dir_name) {
DIR *dir_ptr;
int ret_code;
char tmp_str[8+1];
struct dirent *ent;
char file_path[PAT_LEN];
if ((dir_ptr = opendir(dir_name)) == (DIR *)NULL) {
return;
}
for (;(ent = readdir(dir_ptr)) != (struct dirent *)NULL ;) {
printf(”%s¥n”,ent->d_name);
}
closedir(dir_ptr);
return;
}
ありがとうございます。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/opendir.3.html
Manpage of OPENDIR
お初に御目文字いたします。
コマンド…って、APIの事ですかしら?
opendirからreaddir、closedirの一連のAPIを使えばなんとでもなると思うんですけれどもいかがかしら?
一応念のため。これはUNIXでのお話よ。Windowsは存じ上げませんわ。たぶんWIN32APIにそういった類のものはあるはずなんですけれども。
ありがとうございます。
提示された仕様を満たすなら
#include <stdlib.h>
system(”ls”);
で良いと思います。
ありがとうございます。
http://www.d8.dion.ne.jp/~dkubota/program/c_standard.html
ANSI C���� ���C�u������
標準関数ではそのような関数は存在しないです。
windowsの場合ならsystem関数にて「dir」コマンドを発行してリダイレク(例:system(”dir > a.txt”);)して一旦ファイルに結果出力後、プログラムでファイルをopen、readして「<DIR>」の付いていない名前をprintfで表示すればどうでしょうか?
皆さんのおかげでなんとかできそうです。
ありがとうございました。
ありがとうございます。
できればもっと簡単にできるやり方をお願いします。