こんにちは、いつもお世話になっています。
X個のpngファイルを含めたY個のファイルが入っている「Folder」という名前のフォルダがプロジェクトファイルと同じフォルダの中にあったとして、Folderフォルダの中にあるpngファイルの数をint型の変数に、Folderフォルダ内のpngファイル全ての名前をCHAR型の変数に格納するとしたらどうすればいいでしょうか?
特定のフォルダ内の全てのpngファイルを読み込むプログラムを有象無象のファイルが混ざっている状況も想定して記述したいのですが、名前も数も分からない場合はどうしたらいいのか見当が付かないので困っています。
何かいい方法は無いでしょうか?どなたかよろしくお願いします。
フォルダの中にあるpngファイルの数と名前を取得したい
Re: フォルダの中にあるpngファイルの数と名前を取得したい
OS等,どのような環境でしょうか。
また,「フォルダ」であって「ディレクトリ」ではないのですね。
また,「フォルダ」であって「ディレクトリ」ではないのですね。
オフトピック
フォルダとディレクトリは別物であることがあるので (e.g. Windows)。
Re: フォルダの中にあるpngファイルの数と名前を取得したい
>>YuOさん
すみません、書き忘れていました。
OSはWindows7で、プログラミングに使用しているソフトはMicrosoft Visual C++ 2008 Express Editionです。
Windowsでのフォルダとディレクトリの違いは説明見てもよく分かりませんでした。
すみません、書き忘れていました。
OSはWindows7で、プログラミングに使用しているソフトはMicrosoft Visual C++ 2008 Express Editionです。
Windowsでのフォルダとディレクトリの違いは説明見てもよく分かりませんでした。
Re: フォルダの中にあるpngファイルの数と名前を取得したい
ネットで少し調べればフォルダ内のファイル名を取得するプログラムは
簡単にでてくるのですが、何から何まで分からないということはないと思います。
少し作ってみてから再度質問してみたらどうでしょうか?
簡単にでてくるのですが、何から何まで分からないということはないと思います。
少し作ってみてから再度質問してみたらどうでしょうか?
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: フォルダの中にあるpngファイルの数と名前を取得したい
FindFirstFile
と
FindNextFile
を用いることでファイル名一覧が取得できますよ。
http://d.hatena.ne.jp/s-kita/20100129/1264776052
そこから欲しいファイルだけフィルタリングすればOKです。
と
FindNextFile
を用いることでファイル名一覧が取得できますよ。
http://d.hatena.ne.jp/s-kita/20100129/1264776052
そこから欲しいファイルだけフィルタリングすればOKです。
Re: フォルダの中にあるpngファイルの数と名前を取得したい
すでにDixq (管理人)さんがFindFirstFileとFindNextFileを紹介されているので,ディレクトリ下のファイルについては省略します。
それに対して,フォルダーはディレクトリを含みますが,物理的に存在しない,例えば「ネットワーク」フォルダ (FOLDERID_NetworkFolder, CSIDL_NETWORK) も含みます。
ZIPやCABもフォルダーとなります。
エクスプローラーで表示される階層構造に含まれる物は,だいたいフォルダーです。
フォルダーを相手にするのであれば,SHGetDesktopFolderあたりを元に,IShellFolderとお友達になりながら調べていくことになるかと思います。
あとは,SHGetIDListFromObjectとかSHGetPathFromIDListとかでしょうか。
最終的にはディレクトリーに帰結させてFindFirstFile系で探した方が楽だとは思います。
ディレクトリは完全に物理的に存在する物です。wasawasa さんが書きました:Windowsでのフォルダとディレクトリの違いは説明見てもよく分かりませんでした。
それに対して,フォルダーはディレクトリを含みますが,物理的に存在しない,例えば「ネットワーク」フォルダ (FOLDERID_NetworkFolder, CSIDL_NETWORK) も含みます。
ZIPやCABもフォルダーとなります。
エクスプローラーで表示される階層構造に含まれる物は,だいたいフォルダーです。
フォルダーを相手にするのであれば,SHGetDesktopFolderあたりを元に,IShellFolderとお友達になりながら調べていくことになるかと思います。
あとは,SHGetIDListFromObjectとかSHGetPathFromIDListとかでしょうか。
最終的にはディレクトリーに帰結させてFindFirstFile系で探した方が楽だとは思います。
オフトピック
EnumObjectsで非フォルダーを列挙させて,も可能ですが,FindFirstFileと違いワイルドカードによるフィルタリングができないので……。
► スポイラーを表示
Re: フォルダの中にあるpngファイルの数と名前を取得したい
>>Dixq (管理人)さん
>>YuOさん
GetModuleFileName()で実行ファイルのパスを取得してから、それを元に目当てのフォルダのパスを組み立ててFindFirstFileとFindNextFileで読み込む、という方法でできるようになりました。ありがとうございます。
>>YuOさん
GetModuleFileName()で実行ファイルのパスを取得してから、それを元に目当てのフォルダのパスを組み立ててFindFirstFileとFindNextFileで読み込む、という方法でできるようになりました。ありがとうございます。