C言語関係掲示板

過去ログ

No.1045 フォルダの内容を表示するプログラム

[戻る] [ホームページ]
No.13502

ご指導願います。
投稿者---as(2004/04/05 10:06:26)


こんにちは。2次元配列がわかった程度のC言語初心者ですが、

フォルダの内容を表示するプログラム
フォルダ内にファイルがある場合はその中も表示する
↑の内容の物を作ることになってしまい、入門書など手近な資料で調べたのですが、どうもそれらしいことが書いてなく・・・
何かヒントでも頂けたらと思い、書き込みました。
ご指導願います。


No.13503

Re:ご指導願います。
投稿者---as(2004/04/05 10:09:59)


忘れてました。Win32 Console Applicationでやろうとしています。
ほかの方法もありましたら、お願いします。


No.13505

こんな感じ?
投稿者---samsara(2004/04/05 11:06:40)


Win32APIに
::FindFirstFile()
::FindNextFile()
::FindClose()
という関数があります。まずは、これらを使ってファイルを検索します。
検索して得られたファイルの情報は、
::GetFileAttributes()
::GetFileTime()
::GetFileSize()
::GetFileType()
等を使用して取得できると思います。
その結果を表示するのは、標準ライブラリの
printf()
かな。

他にもやり方はあるかと思いますが、私が知っている
方法はこんな感じです。がんばってください。


No.13508

Re:こんな感じ?
投稿者---YuO(2004/04/05 17:00:56)


>検索して得られたファイルの情報は、
>::GetFileAttributes()
>::GetFileTime()
>::GetFileSize()
>::GetFileType()
>等を使用して取得できると思います。

殆どFindFirstFile/FindNextFileで得られる情報ですよ。
#ちなみに,GetFileAttributesExでも得られます。WIN32_FIND_DATAWIN32_FILE_ATTRIBUTE_DATAに読み替えてください。
GetFileAttributes
  • WIN32_FIND_DATA::dwFileAttributes
GetFileTime
  • WIN32_FIND_DATA::ftCreationTime
  • WIN32_FIND_DATA::ftLastAccessTime
  • WIN32_FIND_DATA::ftLastWriteTime
GetFileSize or GetFileSizeEx
  • WIN32_FIND_DATA::nFileSizeHigh
  • WIN32_FIND_DATA::nFileSizeLow

さらに,ファイルが主なので,GetFileTypeの戻り値は一般的にFILE_TYPE_CHARになると思います。
#物理ディスクに対するReparse pointを開いたらどうなるかは知りませんが……。


No.13504

Re:ご指導願います。
投稿者---ともじ(2004/04/05 10:53:28)


>フォルダの内容を表示するプログラム
>フォルダ内にファイルがある場合はその中も表示する

この掲示板の過去ログへ行って、"opendir"で検索してみてください。
いくつか参考になる過去ログが見つかると思います。



No.13506

Re:ご指導願います。
投稿者---as(2004/04/05 11:24:11)


samsaraさん、ともじさん、ありがとうございます。
>この掲示板の過去ログへ行って、"opendir"で検索してみてください。
>いくつか参考になる過去ログが見つかると思います。
過去ログ見てみます、samsaraさんの言った関数も調べてみます。
ありがとうございました!