質問

ListViewコントロール内の特定のフォルダの内容を示すMetroアプリケーションに取り組んでいます。 MSは、開発者がSystem.IO.Directoryクラスを必要としないと判断し、完全にフレームワークから削除しました。

MetroスタイルのアプリでC#でファイルを列挙する代替品を探しています。私はMSによって提供されたすべての列挙サンプルをチェックし、それらはすべてKnownFoldersクラスを使用してWindowsライブラリを列挙しているように見えます:

StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
.

とニーズに応じてGetFilesAsync()またはGetFoldersAsync()メソッドを呼び出します。写真や音楽ライブラリの内側にのみ列挙したい場合は、すべて金です。ただし、ライブラリに含まれていないディレクトリ上のファイルを列挙しようとしています。

誰もがWinRTでどのように可能なかを知っていますか???

役に立ちましたか?

解決

あなたは、デザインによって、この分野ではメトロアプリのために非常に限られています。アイデアは、Metroアプリがアクセスできるものにアクセスできるものにのみアクセスされているため、次のいずれかを指定できます。

  1. アプリケーションに固有のローカルストレージにアクセスする
  2. 既知の保管場所、
  3. の一握りにアクセスする
  4. 特に付与された場所にアクセスします。
  5. http://msdn.microsoft.jpCOM / ja-us / library / windows / apps / hh464959.aspx にアクセスできるようになることについてのアイデアを得る。

他のヒント

http://tirania.org/blog/archive/2011/sep-15.html < / a>:

C#とVBを使用するときは、フル.NETフレームワークを使用しています。だが 彼らは開発者にAPIのより小さなサブセットを公開するように選択しました Windows 8の新しいビジョンをプッシュする。

とこの新しいビジョンには、安全/サンドボックス化システムと非同期が含まれています プログラミング。これが、直接ファイルシステムアクセスを取得しない理由です。 ソケットアクセスと、あなたが消費するために使用された同期API 露光されていません。

今、私が「露出」と言ったことに気付くでしょう。

彼らがしたことは、彼らがコンパイラの一連のAPIにさらされたことだけでした。 メトロプロファイルをターゲットにしたとき。だからあなたのアプリケーションはそうではありません 誤ってFile.Createを呼び出します。実行時に、CLR 完全なクラスライブラリをロードします。 File.Createさん、内部的には、CLRは次のように呼び出すことができます。 File.Create、それはそれにアクセスできないそれはあなただけです。

この分割は過去に行われたものと似ています Silverlight、すべてのAPIが露出していない場合、およびMSCORLIBが あなたのアプリケーションがシステムを確実にする必要がなかった権利が与えられた 安全性。

あなたはいくつかのトリックを使うことができることを考えているかもしれません(GACを参照する コンパイラ参照の代わりにライブラリまたはReflectionを使用して取得する プライベートAPIに、またはWIN32に入る/呼び出す)。しかし、それらすべてがWillを使用しています AppStoreのレビュー申請によって捕まえられ、あなたはできることができない MicrosoftのStoreを通じてアプリを公開します。

あなたはあなたのシステム上であなたを醜いハックしても何でもすることができます。それだけ AppStoreを通してそれを公開することは可能です。

だからおそらく公式な方法はありません、そして非公式の方法があるならば、それはおそらくApp Storeには受け入れられないでしょう。

一般的にこれは意味があります。

編集:WinRTのファイルピッカーを介してセキュアファイル/フォルダへの一時アクセスを許可することは可能ですが、ユーザーが明示的に呼び出されて選択する必要があります。

systemfolder パスからのインスタンス

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(@"C:\...");
.

マシンのすべてのパスに対してこれを行う権限がないかもしれません。

類似の状況。Chrome Bookmarksファイルにアクセスしたいと思っています。最初はFileOpenPickerを使用する必要がありましたが、戻るファイルは、後続の取得のためにFutureAccessList(?)で "キャッシュ"になることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top