• 締切済み

必要最小限のデータのコピーで済ます同期ソフト

2つのパソコンのデータの同期を取りたいのですが、同じデータが2台のパソコンでは違うディレクトリの下に保存してあるものが多数あります。 たとえば、パソコンA:計画\H20\東北\仙台と、パソコンB:計画\2008\東北\仙台 が同じデータといった具合です。手持ちの同期ソフト、たとえばFireFileCopy等で同期を取ると、パソコンBのディレクトリ「計画」の下に、H20\東北\仙台をコピーして、2008\東北\仙台を削除します。コピーしたファイルと削除したファイルは実は同じ内容ですから、これを「H20\東北フォルダをつくり、そこに2008\東北\仙台を移動する」といった動作に変更できれば、無駄なコピーをする必要が無くなり同期の効率があがると思います。そのような同期ソフトありませんか?

みんなの回答

回答No.10

横から失礼します。 質問者さんが、同期ソフトとおっしゃっているので、回答者さんとの誤解を産んでいるのではないでしょうか? 質問者さんの望まれているのは、同期ソフトというより、うまいネーミングが思いつきませんが、「ファイル構造変形ソフト」のような気がします。 残念ながら私はそのようなソフトを知りませんが、いったん同期ソフトを忘れて検索されたらいかがでしょう?

usatan2
質問者

お礼

回答ありがとうございます。 おっしゃるとおり、同期ソフトではないのかもしれません。 最終的には同期ソフトと同じ結果を得たいのですが、今回私が希望する機能は、同期ソフトそれ自身ではなく、同期ソフトを実行する前処理をするソフトが欲しいことがわかりました。 私が欲しいのは、 パソコンB:計画\2008\東北\仙台を パソコンAを参照して、計画\H20\東北\に移動させるソフト です。このソフトでは、一切のコピーも削除も行わず、ファイルの移動だけを行うというものです。 引き続きそのようなソフトご存知ならお教えください。 また、どのようにして検索したらよいのか、ヒントがあればご教示よろしくお願いいたします。 一応プログラムの骨子はできたのですが、すでにあるなら作らずに使わせてもらいたいです。 /* a[i] = "\\program\\free\\backup\\copysync.exe 1,472,249 2008-08-30 16:31:20" のようなパス名付のファイル名および、ファイルサイズ、タイムスタンプをあらわす文字列 f1[i]=j ... a[i] == b[j] の意味 f2[i]=j ... a[i] と b[j] がパス名は異なるが対応するファイルの意味 */ void main() {  char **a,**b;  int *f1,*f2;  GetFileNames(from, a); sort(a);  GetFileNames(to, b); sort(b);  match1(a,b, f1);  // パス名込みで対応付け  match2(a,b,f1, f2);  // ファイル名・タイムスタンプ・ファイルサイズで対応付け  move(a,b, f2); // 対応表f2に従いファイルの移動 }

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.9

>>しかし、「ファイルの内容が同じ」かどうかを判定するにはそのファイルを >>開いて内容を見る(プログラム的な意味でね)必要がありますよね。 >違います。ファイル名・ファイルサイズ・タイムスタンプだけで比較するので、 >ファイルの内容を見る必要はありません。他の同期ソフトも、ファイルの中身までみてないと思いますよ。 他の同期ソフトがタイムスタンプでファイルが同一かどうか判断できているのは 「同じディレクトリ構造の A: 側と B: 側にあるファイル」を比較するだけで済んでいるためです。 B: 側の PC に同じファイル名(ディレクトリは異なる)でタイムスタンプも同じで ファイルサイズも同じであるが、内容が異なる複数のファイルが存在する可能性を排除できません。 そのような状況で、ファイルの内容を確認せずに「正しい場所」にファイルを移動することは不可能です。

usatan2
質問者

お礼

回答、再度ありがとうございます。 >他の同期ソフトがタイムスタンプでファイルが同一かどうか判断できているのは >「同じディレクトリ構造の A: 側と B: 側にあるファイル」を比較するだけで済んでいるためです。 > >B: 側の PC に同じファイル名(ディレクトリは異なる)でタイムスタンプも同じで >ファイルサイズも同じであるが、内容が異なる複数のファイルが存在する可能性を排除できません。 なるほど。同一ファイルの判断基準が、私が希望するレベルと違うということですね。 koko_u_さんも、「内容が異なる複数のファイルが存在する可能性がある」ことを認めるのであれば、「同じディレクトリ構造の A: 側と B: 側にあるファイル」をタイムスタンプ・ファイルサイズを比較するだけでは同じと判断できないことは認めるわけですよね。 とりあえず、私の希望では、「ファイル名・タイムスタンプ・ファイルサイズが等しければ、同じファイルとみなす」という判断基準で十分です。 私の希望する仕様の同期ソフト、やっぱりないのでしょうかね。 自作して作れない内容ではないので、誰かが作っていると思ったのですが・・ お付き合いありがとうございました。

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.8

>やってほしい処理:パソコンBにおいて、  cd パソコンB:計画\2008\東北 mv 仙台 計画\H20\東北\ 既にアイデアがいろいろ出ていますけど、既成のアプリケーションでそれのできるものを私は知らないです。私自身、必要性を感じないです。 この程度なら自作した方が良いような気がします。

usatan2
質問者

お礼

回答、再度ありがとうございます。 無いようなので、自作することにします。 お付き合いありがとうございました。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.7

>(私が望む同期ソフト)パソコンAとパソコンBのすべてのファイルを見て、 > AB同じ場所にあるファイル、違う場所にある同じ内容のファイル、 > 片方だけにあるファイルに分類し、片方だけのファイルを削除・コピーし、 > 違う場所にあるファイルを正しい(パソコンAと同じ場所)に移動する方法 やーっと、わかった。 しかし、「ファイルの内容が同じ」かどうかを判定するにはそのファイルを 開いて内容を見る(プログラム的な意味でね)必要がありますよね。 ということは、同期プログラムが A: で動いているとして、B: 側にあるファイルの内容を A: 側のプログラムが読めるように「コピーしてくる」必要があります。 それって、効率化の意味を失っているのではないでしょうか? 同じファイルが A: B: 両方にあるかを判断するまでもなく、 さっさとコピーしてしまうのが早いのではないですか?

usatan2
質問者

お礼

>やーっと、わかった。 ありがとうございます。 >しかし、「ファイルの内容が同じ」かどうかを判定するにはそのファイルを >開いて内容を見る(プログラム的な意味でね)必要がありますよね。 違います。ファイル名・ファイルサイズ・タイムスタンプだけで比較するので、ファイルの内容を見る必要はありません。他の同期ソフトも、ファイルの中身までみてないと思いますよ。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.6

>こんな動作をする同期ソフトを探しているんです。 広い世の中、もしかするとご要望のソフトウェアもあるかもしれませんが、 色々考えると切りがないので、大抵のソフトは「ディレクトリ構造を含めて」コピーします。 例えば A:\dira\file1.txt A:\dira\file2.txt と B:\dirb\file1.txt B:\dirb\file2.txt がディレクトリ構造を無視して「同期」しているとして、A: 側の file1.txt と file2.txt はやっぱり別に分けたいなあ、と思って A:\diraX\file1.txt A:\diraY\file2.txt としても、中にあるファイルは同じだから B: 側は変更されないんですよね? 本当にそのような動作を望んでいるのですか?

usatan2
質問者

お礼

>ディレクトリ構造を無視して「同期」しているとして、 いえ、同期していないですよ。同期するとは、  B:\dirb\file1.txt  B:\dirb\file2.txt を  B:\dira\file1.txt  B:\dira\file2.txt にすることです。 >としても、中にあるファイルは同じだから B: 側は変更されないんですよね? 違いますよ。同期を取ってほしいので、A:側が、  A:\diraX\file1.txt  A:\diraY\file2.txt に変わったら、B: 側も  B:\diraX\file1.txt  B:\diraY\file2.txt に変更してほしいのです。 まだ、私の希望が正しく伝えら得ていないのでしょうか? しつこいですが、もう一度言葉を換えて希望を述べます。 同期ソフトなので、パソコンAとパソコンBをまったく同じ(同じディレクトリに同じファイルがある状態)にしたいのです。そのためには以下の3種類の方法が考えられます。 (完全コピー型)パソコンBのファイルをすべて削除して、パソコンAのファイルをすべてコピーする方法。 (多くの同期ソフト型)パソコンBにパソコンAと同じ場所にある同じファイルには手をつけず、Bにだけあるファイルを削除して、Aにだけあるファイルをコピーする方法 (私が望む同期ソフト)パソコンAとパソコンBのすべてのファイルを見て、AB同じ場所にあるファイル、違う場所にある同じ内容のファイル、片方だけにあるファイルに分類し、片方だけのファイルを削除・コピーし、違う場所にあるファイルを正しい(パソコンAと同じ場所)に移動する方法

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.5

>そうですか? 一般の同期ソフトでも、ファイル名、タイムスタンプ、ファイルサイズが等しければ、 >同じデータであると判断して、コピーは行いませんよね。 それは「ディレクトリ構造が同じ」だから可能なんですね。 usatan2 さんが例に挙げていた内容では、 "計画\H20\東北\仙台" にあるファイルが "計画\2008\東北\仙台" にあることは ソフトウェアにはわかりません。 同期先も同じ階層構造 "計画\H20\東北\仙台" であった場合に初めて、 中のファイルのサイズやタイムスタンプを比較できるのです。 "計画\H20\東北\仙台" の同期先が "計画\2008\東北\仙台" かもしれず、あるいは "計画\2008年\東北\仙台" かもしれず、はたまた "計画\平成20年\東北\仙台" かもしれないような 状況に対応することは不可能です。 唯一可能な対応が「そうなめ」という意味です。

usatan2
質問者

お礼

再度回答ありがとうございます。 >唯一可能な対応が「そうなめ」という意味です。 そうです。まさにそのとおりの処理を希望しています。 ファイル名を「そうなめ」して、必要最小限のデータのコピーで済ます同期ソフトを探しているのです。 >"計画\H20\東北\仙台" の同期先が "計画\2008\東北\仙台" かもしれず、あるいは >"計画\2008年\東北\仙台" かもしれず、はたまた "計画\平成20年\東北\仙台" かもしれないような >状況に対応することは不可能です。 はじめに見つかったファイルを移動させれば十分と思いますので、別に困らないのではないでしょうか。 アルゴリズムとしては、 1)まず、ファイルすべてをリストアップする。 2)同じディレクトリの同じファイルに同期済みの印をつける 3)印のないファイル同士でペアを作り、移動の印をつける 4)対応のつかなかったファイルをパソコンBから削除する 5)パソコンB内の移動の印のついたファイルを移動する 6)対応のつかなかったパソコンAのファイルをパソコンBにコピーする 以上 こんな動作をする同期ソフトを探しているんです。どこかにありませんか?

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.4

>どちらのソフトでも、ファイルの移動ではなく、削除・コピーを行っていましたけど ちょっと待って下さい。 移動って何ですか? 同期というのは、同じ内容にする処理です。 もしかして、元データは消して異動先だけにデータを残せと言うのでしたらそれは同期とは言いません。

usatan2
質問者

お礼

回答ありがとうございます。 >移動って何ですか? ファイルやディレクトリをあるフォルダから別のフォルダに移動するという意味です。 >同期というのは、同じ内容にする処理です。 そうです。うまく私の希望が伝わっていないようなので、言い直します。 やってほしい処理:パソコンBにおいて、  cd パソコンB:計画\2008\東北 mv 仙台 計画\H20\東北\ 実際にソフトが行った処理 copy パソコンA:計画\H20\東北\仙台 パソコンB:計画\H20\東北\ del パソコンB:計画\2008\東北\仙台 です。

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.3

>パソコンBに「計画\H20\東北」フォルダが無ければ作り、「計画\2008\東北\仙 台」ファイルをそこに移動する、ということをやってくれるソフトが欲しいので す。 実際にやってますよ。 同期の単位は上位のフォルダ同士になりますが、対象とするフォルダを比較して、その中にフォルダがなければフォルダは自動作成されますよ。 それが同期というものです。

usatan2
質問者

お礼

再度、回答ありがとうございます。 >実際にやってますよ。 えっ、本当ですか? 私の設定が悪いのかも知れませんが、確認したところ、どちらのソフトでも、ファイルの移動ではなく、削除・コピーを行っていましたけど・・・ ファイル移動となる設定方法をお教えください。重ねてよろしくお願いいたします。

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.2

フォルダアップデートマネージャ http://www.vector.co.jp/soft/winnt/util/se297726.html Realsync http://www.vector.co.jp/soft/win95/util/se061150.html 前者は、設定した複数jのフォルダを個別に同期処理できるメリットがあります。もちろん、一括して処理することもできます。

usatan2
質問者

お礼

回答ありがとうございます。 紹介くださったソフトは、ちょっと違う気がします。 パソコンBに「計画\H20\東北」フォルダが無ければ作り、「計画\2008\東北\仙台」ファイルをそこに移動する、ということをやってくれるソフトが欲しいのです。もっと賢ければ、パソコンBのフォルダ名「「計画\2008\東北\」を「計画\H20\東北」を変更してくれるだけでもうれしいです。ちょっと考えるだけでも例外が多発しそうで、そのようなソフトは作るのが大変そうですが・・・

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>無駄なコピーをする必要が無くなり同期の効率があがると思います。 確かに「コピー」は減るかもしれませんが、「同じデータ」であることを判断するのに非常に時間がかかると思います。 usatan2 さんは H20\東北\仙台 と 2008\東北\仙台 が「同じと知っている」のでよいですが、 ソフトウェアは知るよしもないので、単純に考えれば、 両方の PC にある「全てのファイルをそうなめ」するしか方法はなさそうですね。 そんなことに時間を取られるくらいなら、多少無駄でもコピーしてしまった方がトータルとして早いと思います。

usatan2
質問者

お礼

回答ありがとうございます。 >確かに「コピー」は減るかもしれませんが、「同じデータ」であることを判断するのに非常に時間がかかると思います。 そうですか? 一般の同期ソフトでも、ファイル名、タイムスタンプ、ファイルサイズが等しければ、同じデータであると判断して、コピーは行いませんよね。つまり、「全てのファイルをそうなめ」する必要はなく、「すべてのファイル名をそうなめ」するだけで済むと思います。たとえばファイル「仙台」が600MBの動画ファイルの場合、削除してコピーする現状と、移動で対処する場合ではその差は歴然と思います。削除とコピーを組み合わせる現状では、時間がとられるだけでなく、ファイルの断片化を促進する可能性が高いことになりますので、出来れば避けたいのです。

関連するQ&A

  • バックアップ・同期ソフトを探しています

    家庭内LANでパソコンが3台とNAS(バッファローのLinkStation)がつながっている環境です。 たとえば、どのパソコンからも家計簿をつけられるよう、家計簿のデータファイルはNASに置いてあります。このファイルはなくなってしまうと大変なので、バックアップを常にとっておきたいので、現状では思い立ったときに私のパソコンにコピーしています。また、私のパソコンのマイドキュメントもいろいろ大事なファイルがあるので、こちらは逆にNASにコピーしています。またファイル(またはフォルダ)によっては私のパソコンにIEEE1394で接続されている外付けハードディスクにバックアップを置きたいものもあります。 これらの作業を、自動で行いたいのですが、単にコピーするだけだと結構な時間がかかるので、差分だけを更新してくれるソフトを探しています。 パソコン2台の間で同期をとるソフトはいろいろあるようですが、パソコンとNASの同期ができるものがなかなか見あたりません。 また、データの保護が最優先なので、フリーソフトはどんな不具合があるかわからないので避けたいと思います。(とはいえ、できれば1万円以内で購入したいです) このような環境・条件で、よいソフトをご存じの方がいらっしゃいましたら、是非お教えください。

  • コピーペーストしたデータがコピー元と同期してしまう

    あるソフトウェアがc program×86フォルダにあって、 そのソフトをコピーしてデスクトップ上にペーストしたとします。 この場合、ペーストされたソフトウェアのデータを変更すると、 コピー元のソフトウェアのデータも合わせて変更されてしまいます。 具体的には、ソフトウェア(exeファイル)とfelicalib.dllの2つがあって、 そのソフトはデータをfelicalib.dllに保存しているのだと思います。 だから、ソフトに2つ目のデータを作成するためには、 ソフトとfelicalib.dllを別フォルダーにコピーペーストすればよいと考えたのでした。 そうすれば、コピーされたソフトは、新しく作成されたfelicalib.dllを読み込むはずだから、 コピー元のfelicalib.dllとは独立した別個のデータを作成できると思いました。 しかしコピー元に相互リンク(絶対参照?)されているのか、 なぜか、ペーストされたソフトは、コピー元のソフトとデータが同期されてしまいます。 コピー後のソフトのデータを新しく変更を加えるとコピー元のデータも合わせて変更されています。 どうすれば、コピー元から独立したデータができるでしょうか。 windows7です

  • 自動的にデータを同期するソフト

    指定した特定のディレクトリにあるデータを別の特定のディレクトリへ一定時間ごとに自動的ににてバックアップ(同期)してくれるソフトでオススメのものはありますか。windows環境で、ローカル、またはリモート環境でもできるものがあれば教えていただけると幸いです。

  • ブリーフケースのようなファイル同期ソフトを探しています。

    タイトルの通り ブリーフケースのようなファイル同期ソフトを探しています。 現在デスクトップとノートの2台(共にXPpro)をLANでつないで仕事をしています。 ファイルの同期に以前はブリーフケースを使っていましたが、 いかんせん動作が重いので、フリーのファイル同期ソフトを入れています。 いろいろ探してみて「RealSync」や「syncsync」を使っていますが ちょっと自分の使い方にはあわないもので。 2台のパソコンのうちどちらかが仕事用(メイン)で、どちらかがバックアップ用(サブ)というように割り切らず、 どちらもどう頻度で使用しています。 更新先にあるファイルを削除したときに、 ブリーフケースでは更新元のファイルも削除できましたが 「RealSync」や「syncsync」では更新先にあるファイルを削除すると 更新元のファイルが更新先にコピーされてしまいます。 メインPCとサブPCが明確に分けれるのならよいのですが 現在の使用状況では分けられず、 更新先になっているパソコンから要らないファイルを削除したいときに 更新元になっているパソコンを操作しなくてはいけません。 つまり、更新先のファイルを削除したら更新元のファイルも削除されるようなソフトはないのでしょうか? みなさんよろしくお願いします。

  • パソコン間でのデータ同期について

    はじめまして。色々と調べてみたのですが、調べ方が悪いのか 見つける事ができず、こちらで質問させて頂きます。 会社にて、ディスクトップパソコンとノートパソコンの2台を 使用しております。 社内に居る時はディスクトップを使用し、出張や外出する際には ノートパソコンを使用しています。現在は、どちらにも同じ データを手動にてコピーしあい同期をとっています。(ノート パソコンを持ち出す前に) ちなみに社内はLAN接続です。 同期をとっているフォルダはマイドキュメントやデスクトップ お気に入りなどが主ですが、それなりにファイル数はあります。 毎回手作業でコピーをするのは時間が無い時などかなり面倒な 作業となってしまいます。(お互いのファイルの日付を見ながら [はい][いいえ]を押しています) このような作業を自動的に行なってくれるような無料ソフトを ご存知の方はいらっしゃいませんか? RealSyncというソフトも試してみたのですが、なかなかうまく 出来ませんでした。(2台ともこちらのソフトを入れて、お互いの フォルダをバックアップ先に設定。それぞれで手動にて今すぐ更新を 行ないますが、同名のファイルでもバックアップ元のファイルの 日付とバックアップ先のファイルの日付を比べて上書きしてくれ ますが、バックアップ先の方のファイルが更新されていても(こち らの方が日付が最新)、バックアップ元と日付が違うという扱いで 古いファイルが上書きされてしまいました。) サーバなどへのデータバックアップにはかなり便利で使用しており ますが、お互いでファイルが更新されていくパソコン同士での 同期という使い方では、私には出来ませんでした。 同期する際の条件としては、どちらも同期用にフォルダを作成せずに 今あるフォルダ間で行いたいと思っています。 長文になってしまいましたが、おわかりになる方がいらっしゃい ましたら、お願い致します。

  • おすすめのファイル同期ソフト

     できるだけ高速に行えるファイルのバックアップソフトを探しています。 現在ファイル同期には「Rich Copy」を使用しています。 バックアップするデータが大きいとコピー完了するまで40分~1時間以上 待たされることがあるので、新しいものに変えようかなと思います。 調べてみたのですが、結構ソフトが多いので、どのようなものがおすすめ&評判いいのか 参考にお聞きしたいと思いました。 ファイル同期ができてさらに高速コピーもできるというのはなかなかありませんでしたが、 「Rich Copy」より使いやすいものってございますでしょうか。 なにか詳しい方がいらっしゃいましたらよろしくお願いいたします。

  • こんな同期ソフトありませんか?

    いつもお世話になっております。 いま、2台のPC(A,B)間で、同じフォルダー内にある更新されたファイルのみをUSB等の外部メディアを介して、同期を取りたいと思っています。 ただ、既存のソフトでは、そのソフトで、PC-Aのあるフォルダーの内容を、外部メディアにフルコピーした後、PC-B側に挿し、PC-Bのフォルダー内容と外部メディアの内容を同じソフトで比較した上で、外部メディアから更新分のみPC-Bにコピーされるという仕組みになっています。  この場合、複数フォルダーのPC(A,B)間の同期は、外部メディアの容量に依存してしまうというデメリットが発生してしまいます。  そこで・・・PC-Aの任意のフォルダーのファイルリスト(更新日時、作成日時を含む)を作成して、そのリストを外部メディアを介して、PC-Bの任意のフォルダーのファイルリストと比較し、そのファイルリスト上で、更新あるいは作成された差分のファイルのみ、外部メディアにコピーするというような仕様のソフトを探しています。 どなたかご存知ありませんでしょうか?! よろしくお願いします。

  • フォルダ同期

    宜しくお願い致します。 会社Aと自宅Bの2台のPCで作業を行なう際、フラッシュディスクで移動しているのですが、 最新ファイルが混在する為、新しい方を上書きしてしまう事があります。 A⇔フラッシュディスク⇔Bで 同期を取りたいと思い、ソフトを探しています。 RealSyncというソフトを見つけ、試用してみましたところ、 大変便利だったのですが、A⇔Bと相互に同期の場合、どちらかのディスクで ファイルが削除されても、片方では削除されない仕様のようでした。 私の場合は、度々画像ファイルなどの削除(旧フォルダへ移動)変更を行なう為、 削除も同期されないと、削除しても再度削除してない方のディスクからコピーされ、 古いファイルが現在使用のフォルダへ溜まってしまい、不便を感じています。 こういう事が可能なフリーソフトで、わりと信頼性の高いものがございましたら、 ご教示をお願い致します。

  • 同期ソフト

    いつもお世話になっております いままで、ブリーフケースを使ってデスクトップとラップトップの同期を行なっていましたが、いろいろと同期以外の作業上で使いにくいところがあったり、時間がかかるので、いろいろ探していると同期ソフトというものの存在を最近知りました。 試しにWinSyncを使ってみましたが、インポートとエクスポートが分かれていて、どっちからどっちにファイルをコピーするのかを間違えると、ファイルが消えてしまうことがわかりました。 普通のフォルダどうしで両方向の同期を行なえるソフトを探しているのですが、お勧めのものなどを教えていただけないでしょうか。 2つのPCを半々で使っているので、同期の仕方はブリーフケースのようで、それを別々のPCの2つの普通のフォルダに対して、ソフトを使って同期するものを探しています。 宜しくお願い致します。

  • ファイルの共有を高速でできるフリーソフト

    こんにちは、 ファイルのコピーや同期を高速でできるフリーソフトでお勧めのものはありますか。 OSは、Windows 7 と XPを予定しております。 データを更新したものだけをコピーしたり、定期的な時間の設定などもできるとありがたいです。 また、同期でも、削除したファイルも 片方にデータが残っていると結局、同期でまた復活してしまうことがあります。 削除したことも分かることも含めた同期ができる、片方にあわせるような同期ができるフリーソフトがありましたら、教えてください。

専門家に質問してみよう