2017-03-29 71 views
0

私のアプリは完全にフリーズしてから一度でも実行できるようになります。コンテキストは次のとおりです: 私はUWPアプリケーションを構築しています。このアプリケーションはユーザーディレクトリで動作し、その中のファイルを監視し、UIコントロールにリストします。手動のフォルダ選択のプロンプトを作成して、ディレクトリをfutureaccessリストに追加しました。私はまた、そのディレクトリにあるファイルのリストを私に入手させるサービスクラスを持っています。私がGetFolderFromPathAsyncメソッドに着くと、アプリケーションはフリーズします。例外やあらゆる種類のエラーはありません。アプリは起動を試み、起動プロセスに無期限に着いています。GetFolderFromPathAsyncを呼び出すときにアプリケーションがフリーズする

public class ReplayDirectoryManager 
{ 
    public async static Task<List<StorageFile>> GetAllReplaysFromReplayDirectory() 
    { 
     string replayDirectoryPath = SettingsServices.SettingsService.Instance.ReplayFolderLocation; 
     StorageFolder replayFolder = await StorageFolder.GetFolderFromPathAsync(replayDirectoryPath); 

     return new List<StorageFile>(await replayFolder.GetFilesAsync()); 
    } 
} 

私は私のコードは、仕事を得るにはどうすればよい: ここでメソッドが呼び出されたクラスがですか?助言がありますか?

ここで私はあなたがWindows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(folder);を使用するときは、トークンを取得することができますfutureaccessリスト

FolderPicker picker = new FolderPicker(); 
picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; 
picker.FileTypeFilter.Add("*"); 
StorageFolder folder = await picker.PickSingleFolderAsync(); 
if (folder != null) 
{ 
    Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(folder); 
    ReplayFolderLocation = folder.Path; 
} 
+0

'FutureAccessList.Add(folder)'によって返されたトークンを覚えて、それを使って* StorageFolder *を取得しようとしましたか?一般的に、これはどのように行うべきか、UWPのパスでファイル/フォルダにアクセスしないでください。 – Romasz

+1

そのパスにいくつのファイル/フォルダがありますか?空のフォルダを試して、どのように行ったか教えてください。 – Rafael

答えて

0

に場所を追加するために使用するコードです。

設定を保存するトークンを使用できます。

あなたはトークン

folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(token); 

@RomaszのThxをしてフォルダを取得することができます。

+0

これはちょうどそれを試して、より良い方法を示すためのコメントだった**しかし、それは問題の解決策ではない - その場合OPは* AccessException *を見なければならないが、彼のアプリはフリーズする。彼はおそらくより多くの情報を提供する必要があります。 – Romasz

+0

@Romasz私は、私がアクセス権を持っているけれど、私はそれを得る正しい方法を使わなかったかすかなパスを得るために使用すると、フリーズすることがわかります。 – lindexi

+0

@Romasz彼はFutureAccessListを使用しますが、トークンを保存しておらず、公式に推奨されている方法ではないパスを保存します – lindexi

関連する問題