3

作業中の WinRT アプリのフォルダーにファイルを保存しようとすると問題が発生します。より具体的には、フォルダーを取得できません。MyFolderいくつかのファイルを保存する必要があり、その後、同じフォルダーからそれらを取得する必要があります。実際には、アプリ内でフォルダーと同じレベルにあるとしましょうAssets。どうすればそのようなことを達成できますか?

これまで試した

await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("MyFolder")

await ApplicationData.Current.LocalFolder.GetFolderAsync("MyFolder");

どちらも、そのようなフォルダーは存在しないと私に言っているようです。今、私が正しい軌道に乗っているのか、それとも私がやった愚かなことでその例外が発生したのか、それを理解できないようです。コード全体を実際に投稿することはできません。実際には、他の呼び出しを伴うより大きなメソッドへの呼び出しなどであるためです。

また、(これらの方法のいずれかが正しい場合)、アプリが更新された場合、コンテンツは何らかの形で影響を受けます (より正確には、失われます)。

ありがとうございました。

4

2 に答える 2

10

Windows.ApplicationModel.Package.Current.InstalledLocationは、アプリケーション パッケージによって定義された「ファイル システム」を提供するため、たとえば、URI 経由で一般的に使用されるアセット フォルダーが表示され ms-appx:///Assets ますms-appx。 -Visual Studio からデプロイしたプロジェクトによって定義されているためです。

ApplicationData.Current.LocalFolderを使用すると、現在のアプリケーション/ユーザーが所有する (および に保存されている%AppData%/Local/Packages/<yourapppackage>/LocalState) 'ファイル システム' にアクセスできます。ここでは、さまざまな役割を管理するために必要な構造を作成し、ms-appdata:///local/DirLeve1/DirLeve2/File3URI を使用してファイルにアクセスできます)。そのストレージはアプリケーションの更新によって保持されますが、もちろん、新しいバージョンのアプリケーションと対話するために必要な保存データ形式を更新するための戦略が必要になります。

LocalFolder にフォルダー階層を含めることはできないと想定しているようです。そのため、たとえば LocalFolder 参照の下に Recents サブフォルダーを作成して、そのように処理することができます。

于 2013-08-10T01:40:07.143 に答える