こんにちは。

指定したフォルダに入っているファイルやフォルダの情報を取得するには
どんな関数を使えばいいのでしょうか?

OSはwindows(98)
開発環境はvisual stdio C++です。

どうかよろしくお願いします。

A 回答 (1件)

> 指定したフォルダに入っているファイルやフォルダの情報を取得するには


> どんな関数を使えばいいのでしょうか?

あるフォルダに入っているファイルやフォルダの一覧をプログラムで取得したい、ということですね。

FindFirstFile(), FindNextFile(), FindClose() を使います。例えば、

WIN32_FIND_DATA fd;
char* dir = "c:\\*.*";
HANDLE h;

h = FindFirstFile(dir, &fd);

do {
 printf("%s\n", fd.cFileName);
} while(FindNextFile(h, &fd));

FindClose(h);

といった感じ。詳しくはヘルプを見てください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qvisual stdio C++ でのif文

C言語の勉強をしようと、『Visual Stdio C++ 2008 Express Edition』をインストールして使用していたのですが
よくわからない現象起きてしまったので、質問させていただきます。

例えばint型のanという変数があったとします。
そのanを使って

an = 50;

if((an = 20) || (an = 30) || (an = 40))
printf("...");
else
printf("...");

このようなプログラムを書いたら、if文であるにもかかわらず
anの値が20に変化してしまうんです。
もしかすると何かvisual stadioの設定がいけないのでしょうか?
ご教授お願いいたします。

Aベストアンサー

(an = 20)なので20に変化するのは当然ですね
この時点で真と評価され後の部分は実行されないので20のままとなります。
等しい(an == 20)
等しくない(an != 20)

Qvisual Stdio、C++.net

visual Stdio、C++.netでC言語で書いたソースをコンパイルしたのですが・

以下のようにmain関数で引数を受け取るように記述しているにも関わらず
この記述のところで止まらず通り抜けて次の処理に進んでしまいます・・
対処法知っている方いましたらお願いします。

int main(int argc,char *argv[])
{
(省略)
}

Aベストアンサー

>>(1)ビルドした後にコマンドラインにて引数付きで実行する

>helpでやり方を調べてみたのですがわかりません・・
>どのようにすればコマンドラインにて引数付きで実行できるのでしょうか・

コマンドラインは、
[スタート]-[プログラム]-[コマンドプロンプト]
などで表示されるいわゆるDOSコマンドです。

VC++6.0の場合ですが、ビルドを実行するとソースファイルのあるフォルダの配下にReleaseあるいはDebugのフォルダが作成され、その中に実行可能なexeファイルが作られています。
これを実行する方法として、ダブルクリック、コマンドラインから「c:\~\~\hoge.exe」などと入力します。
コマンドラインの使い方として、
C:\WINNT\system32\calc.exe
などと入力するとそのプログラム(電卓)が実行できます。
電卓は引数を受け取りませんが、もし引数を渡すのなら、
C:\WINNT\system32\calc.exe abc def
のようにすると、abc,defという2つの引数を渡してプログラムの内部で処理する事が出来ます。


main関数の引数は上記のように起動時にしか渡せませんので、プログラム中で外からの入力を受け取るにはscanfなどの入力関数を使います。
int main()
{
 int a,b;
 printf("数を2コ入れてね。");
 scanf("%d %d",&a,&b); //入力処理
 printf("2つの数の和は%dです。\n",a+b);
 return 0;
}


mainに渡す起動引数を使用する方が便利な場合もあるので、

A)
tasu.exe 2 3[Enter]
2つの数の和は5です。

B)
tasu.exe[Enter]
数を2コ入れてね。2 3[Enter]
2つの数の和は5です。

どういう使われ方をしたいか?によって使い分けます。

>>(1)ビルドした後にコマンドラインにて引数付きで実行する

>helpでやり方を調べてみたのですがわかりません・・
>どのようにすればコマンドラインにて引数付きで実行できるのでしょうか・

コマンドラインは、
[スタート]-[プログラム]-[コマンドプロンプト]
などで表示されるいわゆるDOSコマンドです。

VC++6.0の場合ですが、ビルドを実行するとソースファイルのあるフォルダの配下にReleaseあるいはDebugのフォルダが作成され、その中に実行可能なexeファイルが作られています。
これを実行する方...続きを読む

QVisual C++ と Visual C++ Express Edition

の違いについて教えてください。
ExpressでもMDIを作成できるのでしょうか?

Aベストアンサー

「Express Edition」には、大雑把にリソースエディタとMFCが付いていません。あとインストーラ作成機能が無かったかな?細かな違いはだいぶありますけど。
WindowsAPIやC++/CLIを使う分には、ほぼ同等にプログラムを作る事ができます。
MDIももちろん作れますよ。

「猫でもわかるプログラミング」
http://www.kumei.ne.jp/c_lang/
のようにリソースエディタやクラスウィザードを使わない作り方をする分には、ほぼ差が無いと思います。

QVisual C++ 2008 Express EditionとVisual c++.net standard version 2003

私は大学生なのですが、最近大学のPCでMicrosoft Visual C++ 2008 Express Editionを使って自分なりに真面目にプログラムに取り組むようになりました。
そんな中、家の中の引き出しを整理していると、数年前に興味本位で購入したVisual c++.net standard version 2003が見つかりました。当時はちょっといじっただけでほとんど放置状態でした。

そこで詳しい方にお伺いしたいのですが、『Microsoft Visual C++ 2008 Express Edition』と『Visual c++.net standard version 2003』、これからはどちらを使ってプログラムを組んでいく方が良いと思われますか?幾つかサイトで調べてみましたが、イマイチ違いが分かりませんでした。

恐らくプログラムの目的によって変わってくるとは思いますが、その辺りも含めて御教え頂けたら…(こういうことするならこっち、特に何も制限がないならこちらを勧める、など)
ちなみに今の所、Microsoft Visual C++ 2008 Express Editionで不便に思ったことはありません。

私は大学生なのですが、最近大学のPCでMicrosoft Visual C++ 2008 Express Editionを使って自分なりに真面目にプログラムに取り組むようになりました。
そんな中、家の中の引き出しを整理していると、数年前に興味本位で購入したVisual c++.net standard version 2003が見つかりました。当時はちょっといじっただけでほとんど放置状態でした。

そこで詳しい方にお伺いしたいのですが、『Microsoft Visual C++ 2008 Express Edition』と『Visual c++.net standard version 2003』、これからはどちらを使ってプ...続きを読む

Aベストアンサー

2003と2008の違いは大学生が趣味か学業のためにやる程度であれば差がないと思います.

2003から2008への変更点ですが,
・Vista対応
・64ビットCPUへの対応
・.NetFramework 3.5に対応
・コンパイラの最適化精度が上がっている

ExpressEditionは,使用用途や製品版と比べてWindows SDKなどが省かれています.

QVisual C++ 6.0とVisual C++ 2005 についてですが・・・

Visual C++ 6.0でワークスペースと呼ばれていた物がVisual C++ 2005になるとソリューションと言う名前になったと聞きました。
また、Visual C++ 6.0で製作したファイルはVisual C++ 2005でも開けるけどVisual C++ 2005製作したファイルはVisual C++ 6.0では開けないと聞いたのですがVisual C++ 2005製作したファイルをVisual C++ 6.0でも開ける様に互換性を持たせる方法はありませんか?
学校と家で使っている環境が違うので互換性がもてれば両方で使えてとても便利になります。
御存知の方がいましたら御伝授お願いします。

Aベストアンサー

ソースファイルやヘッダファイル(拡張子CPP/C/H/HPPなど)はVisual C++ 6.0と2005で共用できるので、6.0用のプロジェクトファイル&ワークスペースと、2005用のプロジェクトファイル&ソリューションファイルを用意すれば両方の環境で開発を進めることができるでしょう。

但し、以下の点にご注意下さい。
・ソースファイルの追加や削除は両方のプロジェクトに対して行うこと。
・Visual C++6.0ではManaged C++が使えないのでManaged C++は使わないこと。
・MFCの仕様がだいぶ違うので、MFCも避けること。MFCを知り尽くしているのでしたらチャレンジはご自由に。
・C++コンパイラとしても若干仕様が違うので(for文内で定義された変数のスコープなど)、常に両方の環境でコンパイルできるか考えながら開発する必要があること。


人気Q&Aランキング

おすすめ情報