1

この記事によると、ダウンロード フォルダーへの書き込みアクセス権しかありません。これは、私が見つけたものによってサポートされているようです。WinRT でこれを回避する方法はありますか? ダウンロードフォルダー内のファイルを反復できるようにしたい。

4

1 に答える 1

5

この件に関する公式ドキュメントは次のとおりです。

すべてのアプリは、ダウンロード フォルダーにファイルとフォルダーを作成でき、作成したファイルにアクセスできます。ただし、アプリは、作成していないダウンロード フォルダー内のファイルにアクセスできません。

アプリがダウンロード フォルダーにファイルを作成すると、ユーザーが他のアプリに明示的にアクセス権を付与しない限り、他のアプリはファイルに干渉したりファイルにアクセスしたりできなくなります。ユーザーは、ファイル ピッカーからファイルを選択することで、別のアプリにファイルへのアクセスを許可できます。アプリは、ファイル ピッカーを使用して、アプリが作成していないダウンロード フォルダー内のファイルにアクセスすることもできます。

ユーザーの介入なしに、フォルダー内のすべてのファイルを列挙または反復処理する方法はありません。ただし、ユーザーに次のフォルダーを選択させると、それが可能になりますFolderPicker

var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();
foreach (var file in await folder.GetFilesAsync())
{
    // do something with each file
}

への参照を取得したら、StorageFolderそれを保存してMostRecentlyUsedList、後でユーザーが再度選択しなくてもアクセスできるようにすることもできます。

var token = StorageApplicationPermissions.MostRecentlyUsedList.Add(folder);

返されたトークンを保存するだけで、再びアクセスできるようになります。

var folder = await StorageApplicationPermissions.MostRecentlyUsedList.GetFolderAsync(token);
于 2012-12-15T06:13:26.893 に答える