• ベストアンサー

VC++でファイル比較の方法

VC++6.0を使いはじめたばかりの者です。 異なるフォルダのファイル群を比較して それぞれのファイルの内容が一致するかどうかの ルーチンを作成したいと思っています。 VC++ではどのようにするのがよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

簡単な方法として 2つのファイルをそれぞれfopen→freadでメモリ上に展開し memcmpを使えば差異があるかどうかわかります。

takalin
質問者

お礼

なるほど! memcmpを忘れていました。 ありがとうございます。 この方法でいってみたいと思います。

その他の回答 (2)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★最初に C、C++、MFC はどの程度、理解されていますか? ・VC++6.0 は初めてのようですが、GUI、CUI(コンソール系)のどちらのプログラムでしょうか? ・単純な C 言語で組みたいのならば、ファイル単位で fopen、fread、memcmp、fclose を  ファイルの最後まで繰り返せば一致、不一致については簡単に比較できます。 ・あと2つのフォルダからファイル名を検索する必要もあります。  この辺は、どう考えていますか?→つまり、Win32 API 関数などで検索するのでしょうか? ・比較ルーチンを作成したいとの事ですが、フォルダ内のファイル名の検索は除外してもよいのですか?  それともファイル検索も含めてのお話ですか?  いろいろと不明な点がたくさん出てきました。 ・そこで補足要求します。takalin さんはどの部分の何を質問しているのでしょうか?  VC++ も C/C++ ですので普通の言語の規則に則って記述すれば良いと思いますが…。  プログラム全体の記述方法を知りたいのですかね。  もう少し、詳しい補足などをお願いします。 ・以上。補足要求です。

takalin
質問者

補足

ありがとうございます。 いろいろと足らない点があり、申し訳ありません。 Cは知っていますが、C++, MFCは素人です。 フォルダ名、ファイル名、ファイルの数は決まっています。 今回はfopen、fread、memcmp、fcloseで比較を行うことに しました。

  • DT200
  • ベストアンサー率38% (63/164)
回答No.2

とりあえず、アルゴリズムだけ http://hp.vector.co.jp/authors/VA007799/viviProg/doc5.htm

takalin
質問者

お礼

ありがとうございます。 なんだか難しそうですね・・・^^; 今回は#1さんの方法を使いたいと思います。

関連するQ&A

  • ファイル内容を比較する方法

    サーバ側とクライアント側の2つのファイル保存フォルダの中を比較して、クライアント側に不足しているファイルをサーバからダウンロードするというプログラムを作成しています。 現時点では、両方のフォルダのパスを指定して、FileクラスのlistFilesによってフォルダ内の一覧情報を取得し、それぞれのフォルダ内のファイル名を比較して一致しない場合はそれをダウンロードするという方法で不足しているファイルを取得することができています。 しかし、ファイル内容が異なっているのにファイル名が同じであるときにそれをダウンロードできないという問題がでてきて困っています。もしファイル内容まで一致しているかどうか比較できる方法があったら教えてほしいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • まめfile5 ファイル比較

    まめfile5で、2画面でファイルのサイズや作成日時が表示されたのはいいのですが、 その比較をいちいち目で追っています。 これを自動で比較することはできないのでしょうか。 また、その比較の結果、違ったファイルだけ表示することはできませんか? 同じファイルが色々なところに存在しているので ひとつのフォルダにまとめたいです。 差分コピーをすればいいのですが、 それではちょっと不安もあるので、確認しながら行いたいのです。 ご回答のほど、よろしくお願いいたします。

  • 【WINDOWS】 2つのファイル名を比較するには?

    2つのフォルダ内に多数のファイルがあります。この中でどれが同じファイル名か知りたいのですがどうすればよいのでしょうか?出来れば日付も一致しているかどうか比較したいです。  わかる方ご教授願います

  • VC2005で作成したDLLファイルをVC2008で動的リンク(LoadLibrary)する方法

    「VC2005 Standard Edition」で作成したDLLファイルを、 「VC2008 Express Edition」で作成したコンソールアプリケーション から、LoadLibrary("VC2005で作成したDLLファイル")すると 失敗してしまいます。 GetLastErrorでエラーを取得すると、"36B1"が表示されます。 (このエラーは何か調べても見つかりませんでした) 何が原因かご存知の方がいらっしゃいましたら、 ご教授頂けませんでしょうか。

  • フォルダのファイル比較ソフトを探してます

    2つのフォルダ内のファイルを比較するソフトを探しています。 ただ、「更新日時」と「作成日時」で比較できるもので、 フリーウェアであれば助かります。 有名どころはすべて試したのですが、 作成日時で比較できるものがなく、困っています。 どなたかお助けください。

  • フォルダに入っているファイルを一つ一つzipファイルにする為のbatファイルの作成方法

    カテゴリ違いでしたらすいません。 内容はタイトルでも記載をしているのですが zipファイルの圧縮に関しましてです。 今は、フォルダ内に入っているファイルを一つ一つ7zip等を使用して 圧縮を掛けております。 しかし、これでは効率が悪いと思いました。 作業自体はルーティン作業に近い感じだったので batファイルを作成して、作業の効率化を図ろうと思いましたが どのように記載するとそのようにbatファイルを作成することが出来ますか? どなたか教えていただけますでしょうか? よろしくお願いします。

  • VC++4.0→VC++6.0

    Visual C++4.0で作成したソースをVisual C++6.0で 読み込ませたい(VC++6.0で再コンパイルしたい)の ですが、.dswファイルを起動しても関連するファイルが 開いてくれません。(ファイルビューには.makしかない) Visual C++6.0で再コンパイルする方法を教えて下さい。 (VC++自体わからないのですが、コンパイル位は出来ます) そもそも出来ないのでしょうか? (VBは可能なので、VC++も出来るのかなと思いまして...)

  • VC++6.0からVC++2010への変換

    VC++6.0からVC++2010への変換 VC++6.0で作成したプロジェクトを、VC++2010で開こうとすると、 .dspファイルの変換ができずプロジェクトが開けません。 調べてもなかなか情報がありません。 知っている方がいましたらよろしくお願いします。

  • フォルダのファイル内容を比較する方法

    ハードデスク内のフォルダ間の内容を比較し違うファイル を、表示する方法を教えてください。 OSはWindows Meです。

  • 「VBScript」でのファイルのコピーについて

    こんにちわ テキストファイルに記述されている「ファイル名」とフォルダ内の 「ファイル名」を比べて一致しているものを別のフォルダにコピー するというツールを作っています。 読込んテキストファイルの内容とフォルダ内のファイルを比較する にはどのようにすればいいのでしょうか? 宜しくお願い致します。