1

このフォーラムは初めてです。あるマシンから別のマシンにファイルを同期するプログラムを作成しています。正常に動作しますが、Excel ファイル (.xls、.xlsx) でいくつかの問題に直面しています。クライアント C1 から xls ファイルをバックアップし、それを他のクライアント C2 に更新したとします。これは、librsync アルゴリズムによって段階的に発生します。

シナリオは次のとおりです。

C1 と C2 の両方にファイルa.xlsがあり、このファイルは C1 から変更されており、C2 に更新する必要があります。この間、(以前のバージョンの) ファイルが既に C2 で開かれている場合、同じ名前で更新することはできません。通常、このような C2 への更新中は一時ファイル ( a.xls.tmp) に書き込み、これが完了a.xls.tmpすると a.xls に名前が変更されます。a.xls はすでに C2 で開かれているため、この名前変更オプションは失敗しました。

しかし、これは唯一のケースではありません。ウイルス対策またはその他のバックアップ製品が Excel ファイルをロックし、この名前変更操作が再び失敗することがあります。これらの要因により、ファイルがターゲット マシン (ここでは C2) で使用されていたかどうかは正確にはわかりません。

このような場合をプログラムで処理する方法を提案していただければ幸いです。私の場合、C++を使用しています。

ありがとう、ベンカット

4

1 に答える 1