TouchJW v2 for Win と DropBox DeskTopアプリの不具合について

TouchJW v2 for Win と DropBox DeskTopアプリの不具合について

TouchJW v2 for Win と DropBox DeskTopアプリを併用すし、TouchJW v2 for WinアプリでDropboxフォルダに対する書き込み動作を行うとクラッシュするバグを確認しました。

バグの原因は、ファイルを高速に保存する、
>>CachedFileManager::DeferUpdates(file);

において、DropBox DeskTopアプリが書き込み許可を与えない設定になっています。

いろいろと調べましたが、CachedFileManager::DeferUpdatesにおいて、この問題を根本的に解決できる方法が見つかりませんでした。

しかし、ほかのアプローチにおいて保存が可能になる可能性があります。

1)CachedFileManager::DeferUpdatesを使わずに、ファイルをSandBox領域に生成し、CopyFileAsyncでコピーする。

2)DropBoxのMetoroアプリをインストールしファイルオープンピッカーコントラクトで保存操作を行う。

1)のプログラムは若干時間がかかるかと思います。まずは、CachedFileManager::DeferUpdatesの例外発生で落ちる現象を回避し、その場合、CopyFileAsyncでファイル複写を試みるというアプローチです。やってみる価値はありそうです。(^^;..

2)は現在でも実装されていますが、
CachedFileManager::CompleteUpdatesAsyncの戻り値が
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.storage.provider.fileupdatestatus
現在公開されている版では、Complete のみの対応で、
Incomplete,CurrentlyUnavailable,CompleteAndRenamed は現実的に、Complateと同等に扱う必要があり、DropBoxアプリはCurrentlyUnavailableを返すため、この方法では、エラーが発生します。

なので、CompleteUpdatesAsyncの戻り値がUserInputNeeded or Failed の以外場合は正常にファイルがコピーできたと判断するルーチンを組み込みます。

現在作業中です。

Leave a Reply