- ベストアンサー
ファイル1とファイル2の
内容が等しいか等しくないかを検出することができるWindowsAPI関数を探しています。 例えばc:\x.txtとc:\Windows\y.exeの内容が等しいかどうかです。 作るのは簡単ですが有れば便利です。 そのような関数が有れば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>1コマンドでできればこれほど便利なことはないからです すでに、ご存じかもしれませんが、 コマンドでよければ、fcコマンドがあります。 DOS窓で fc /b fileA fileB と入力すると 違いがチェック出来ます。 このコマンドの詳細は fc /?と入力してください。
その他の回答 (1)
- VitaminBB
- ベストアンサー率10% (17/165)
回答ではないので、申し訳有りませんが。。。 >作るのは簡単ですが有れば便利です。 ”じゃあ作れば”って気持ちになり回答したく無くなります。 すなおにどうして必要かを書かれてほうがレスが付きやすくなると思います。
お礼
ありがとうございます。 一応作ったのですが管理が大変ですし1コマンドでできればこれほど便利なことはないからです。 以下のようになりました。 ルーチンワークであるものを毎回打ち込むのは大変です。 int FuncComp(const string& arg0,const string& arg1) { int i,j,k; ifstream ifs0,ifs1; char buffer0[256],buffer1[256]; ifs0.open(arg0.c_str(),ios::in|ios::binary); if(!ifs0.is_open())return 1; ifs1.open(arg1.c_str(),ios::in|ios::binary); if(!ifs1.is_open()){ifs0.close();return 1;} k=0; do { ifs0.read(buffer0,256); ifs1.read(buffer1,256); if((i=ifs0.gcount())==(j=ifs1.gcount())) { for(j=0;j<i;j++)if(buffer0[j]!=buffer1[j]){k=2;break;} } else k=2; if(ifs0.bad()!=0 || ifs1.bad()!=0)k=2; if(ifs0.eof()!=0 && ifs1.eof()==0)k=2; if(ifs0.eof()==0 && ifs1.eof()!=0)k=2; }while(k==0 && ifs0.eof()==0 && ifs1.eof()==0); ifs0.close(); ifs1.close(); return k; }
お礼
ありがとうございます。 残念ながらWindowsアプリに組み込むつもりであり単発でコマンドでチェックするものではないのです。 dosコマンドとして使うのならば一度作って格納すれば以後使えるので作ったらおしまいですから作ります。 (実は作って使っています。)