2012-03-06 12 views
0

Windows CE 6用の.NET Compact Framework 3.5でアプリケーションを開発しています。モバイルアプリケーションとPC間のデータ同期を自動化する必要があります。だから、.NETCFアプリケーションでは、System.IO.File.Exists(fullFilePath)を使用して、数秒ごとにチェックするwhileループがあります。これは、期待しているファイルがPCからモバイルデバイスに、ActiveSync接続を介して接続します。ActiveSyncを介して実行されるファイルシステム操作(コピー、削除、移動など)

モバイルアプリケーションがファイルを検出すると、StreamReaderを使用してそのファイルを開いて読み取ります。

私の問題は、File.Exists(fullFilePath)がtrueを返すことがありますが、その後のStreamReaderの使用がFileNotFoundExceptionで失敗する可能性があることです。

File.Exists()の呼び出しとStreamReaderのインスタンス化の間にファイルが削除される可能性を排除すると、例外がどのように発生する可能性がありますか?それは、ActiveSyncによるファイルコピーがアトミックではないため、File.Exists()がtrueを返してもファイルが実際に読み込みの準備ができていないためですか?

答えて

1

ファイルコピーは最も確かにではなく、となる予定です。コピーを開始すると、ファイルは作成されますが、データはありません。ファイルデータが書き込まれると、ファイルは存在しますが、まだ完全には完成していません。それが存在するだけでなく、現在使用されていないこと(作家が行われていることを意味する)を知りたいと思うでしょう。排他的にそれを開こうとすると、そのことが確認されます。

+0

他の質問が表示されます – Kal

関連する問題