私のアプリは完全にフリーズしてから一度でも実行できるようになります。コンテキストは次のとおりです: 私は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;
}
'FutureAccessList.Add(folder)'によって返されたトークンを覚えて、それを使って* StorageFolder *を取得しようとしましたか?一般的に、これはどのように行うべきか、UWPのパスでファイル/フォルダにアクセスしないでください。 – Romasz
そのパスにいくつのファイル/フォルダがありますか?空のフォルダを試して、どのように行ったか教えてください。 – Rafael