• 締切済み

Cでのフォルダの比較プログラム

C言語を使用しての、2つのフォルダ内容の比較をする方法をご教示いただきたいです。 例をあげると、あるフォルダ(このフォルダの中にはサブフォルダがある)をコピー中にエラーが起きて終了してしまったのでコピーが完了しているサブフォルダはそのままにし、途中までしかコピーできていないサブフォルダ、または全くコピーできていないサブフォルダのみをコピーしたいうときに使用するフォルダの比較です。 比較後に両フォルダの容量、片方にあって片方に無かったフォルダ、ファイル名を出力したいです。 このようなもののリファレンス等ありましたら重ねて教えてください。宜しくお願いいたします。

みんなの回答

  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.1

あなたの場合、まずC言語 "のみ" で出来ること 出来ないことを再確認する必要があります。 で、プラットフォーム(OS)が重要になるのです。 今回は [フォルダ]と言っているくらいだからWindowsでしょうか。 比較元/比較先双方、親ディレクトリの中身を [列挙] して、 各結果を比較すればいいと思いますよ。 列挙にはWin32APIの [FindFirst] / [FindNext]が便利というか定石みたい。 サンプルはweb上にごろごろ存在するはず。 # [~]はweb検索時のキーワード。

関連するQ&A

  • フォルダ比較ソフト

    Windows NT 4.0で動作するフォルダ比較ソフトを探しています。 1.サブフォルダ以下も全て比較してくれる。 2.拡張子などで比較非対象ファイルを指定できる。 3.ファイル操作(コピー・移動)はしない。 4.フリーソフトである。 上記の条件を全て満たすソフトがなかなか見つかりません。 (どれか一つ妥協すればあるのですが。。。) ご存知の方がいらっしゃいましたら紹介してください。

  • ファイルとフォルダのコピー

    ファイルとフォルダのコピー中、使用中だったり、メールのファイル、その他でも、コピーが途中で強制終了され、コピーできません。バックアップを会社の帰宅時行うため、これだと、非常に困るのですが、コピーを完全に完了させる方法はないでしょうか? 専用のバックアップソフトとか(有償品)使用しない方法を教えてください。

  • フォルダ比較の結果をテキストファイルなどに出力できるフリーソフト

    2つのフォルダ(サブフォルダも含めて)を比較して、ファイルの有無やバイナリ、テキストの比較結果をすべて1つのテキストファイルなどに出力できるフリーソフトはないでしょうか? DFやWinMergeではそういった機能は見つけられなかったので。 よろしくお願いいたします。

  • 組込みプログラム言語の容量・速さの比較

    組込みプログラム言語の容量・速さの比較 組込みプログラムで使用する言語には ・C(++) ・アセンブリ言語 ・JAVA ・(組込み用JAVAのJ2ME) ・(組込み用JAVAのKVM) がありますが、ターゲットデバイス(マイコンなど)へロードする ロードモジュールの状態でのサイズ(容量)は同じなのでしょうか。 違うのであればどれくらいの差があるのでしょうか。 私の予想では  アセンブリ言語 < C(++) < JAVA ですが、どれくらいの差があるのか想像がつきません。 また処理の速さは  アセンブリ言語 > C(++) > JAVA になるのでしょうか。

  • DVDにあるはずのフォルダが参照できません。

    DVDにあるはずのフォルダが参照できません。 数ヶ月前に、ファイルの入ったフォルダ2つをDVD-RAMに作りました。 しかし、今日見てみたところ、片方のフォルダは中のファイルとも参照できるのですが、もう片方は、フォルダ自体が表示されません。 DVDの使用容量を確認すると、参照できるファイルだけでなく、表示されないフォルダ内のファイルの分も食っているので、一応ファイルは生きているようです。 以下のことを試してみましたが、無理でした ・Windowsでチェックディスクをする  →Windowsはディスクの検査を完了できませんでした。 ・あるはずのフォルダと同名のフォルダを作る  →新しいフォルダの名前を変更できません。ディスク構造が壊れているため、読み取ることができません。  (別の場所で作って、コピーした場合も同様) OS:XP SP3 DVD-RAM:UDF1.5 ファイルを回復する方法を、お願いします。

  • スタートメニューにフォルダを

    スタートメニューを開いてすぐのところに (ユーザー名や終了オプションがあるところ) フォルダを追加し、かつそのフォルダにサブメニュー が表示されそこからフォルダの中身にアクセス したいと思っています。 (例:スタートメニューに表示のコントロールパネル) windows XP使用ですが、クラシックメニューは 使いたくありません。 よろしくお願いいたします。

  • 一つのファイルを複数のフォルダーに一括コピー

    Windows10を使用しています。 一つのフォルダー内に、Aというファイルがあり、同じ階層にサブフォルダーが複数ありそれぞれのサブフォルダーに一括コピーしたいのですが、やり方を教えていただけないでしょうか。

  • フォルダに関して

     Dドライブ内に9000ぐらいの数のフォルダがあります。その中から頻繁に使う1000ぐらいのフォルダを、Cドライブにコピーして使用しています。  しかし、それらのフォルダの容量も80GBほどになってしまって、Cドライブがいっぱいになってきました。  そこで質問ですが、現在使用しているCドライブ内のフォルダ名のみを記録しておいて、フォルダを削除して、後でそのフォルダ名のものをCドライブからまたコピーしてきたいのですが、いい方法(フリーソフト)はあるでしょうか?

  • フォルダ内のファイルのコピーについて

    ルートフォルダとサブフォルダ内のファイルのコピーについて 教えてください。 繰り返しの処理にてサブディレクトリ内のファイル名などの取得は 可能なのですが、コピーをしようとすると「書込みできません」の エラーになってしまいます。 Fname = fsoFile.Name 全ファイル名 objFso.CopyFile iFName &"\"& Fname, oFName,True iFName と oFName はそれぞれ、ダイアログで指定したフォルダの pathが入ります。 また、フォルダコピーであれば問題なくコピーされ、ファイル名を テキストにも出力できます。 objFso.CopyFolder iFName , oFName,True objT.WriteLine Fname 以上、宜しくお願いします。

  • WinMergeの比較予約(スケジューリング)方法

    現在、大量のファイルコピーを外付けHDDに行ったため、 コピーエラーが起きていないか確認する用途でWinMerge(WindowsのGUI版)によるバイナリ比較を行なっています。 ただ、複数のフォルダにバラけたファイルをフォルダ単位で同時比較すると、HDDへの負荷が大きいのか比較速度が極端に遅くなるため、 フォルダAの比較終了後に自動でフォルダBの比較開始、フォルダBの比較終了後に自動でフォルダCの比較開始、といったように、 複数フォルダ同時ではなく逐次的かつ自動的に比較が行われるようにしたいと考えています。 (一時的に全ファイルを同じフォルダに合わせるとか、もしくはルート(上位フォルダ)から比較実行するとかは極力避けたく考えています。) しかし、設定等を見ても同時実行数やスケジューラに関する項目が見当たらず、現状対応できていません。 どなたかお詳しい方おられましたら、やり方を教えていただけますと助かります。 よろしくお願いします。

専門家に質問してみよう