1

Windows ストア アプリの DownloadsFolder にファイルをダウンロードしたいと考えています。次に、DownloadsFolder (実際には DownloadsFolder に作成したフォルダー) で Windows エクスプローラーを開きたいのですが、その
方法がわかりません。

このstackoverflow question Launcher.LaunchUriAsyncを使用することをお勧めします。しかし、ドキュメントは次のように主張しています:

この方法を使用して、ローカル ゾーンで URI を起動することはできません。たとえば、アプリは file:/// プロトコルを使用してローカル コンピューター上のファイルにアクセスすることはできません。代わりに、ストレージ API を使用してファイルにアクセスする必要があります。

実際、私は "file:" プロトコルを使用してエクスプローラー ウィンドウを表示しようとしていました。このメカニズムを試してみると、 Launcher.LaunchIUriAsync が失敗します。

ブラウザでこれができるのに、なぜできないのでしょうか? Windowsエクスプローラーを起動する方法はありますか、それとも可能性の範囲外ですか?

4

3 に答える 3

1

Windows Explorer を Metro から起動できないと思います。ただし、使用できるものの 1 つはファイル ピッカーです。

http://code.msdn.microsoft.com/windowsapps/File-picker-app-extension-0cb95155

于 2012-11-12T12:28:45.633 に答える
0

BatRTを使用すると、WinRT アプリケーションからバッチ ファイル コマンドを実行できます。URI 呼び出しを利用します。これを使用して、アプリケーションを開いたり、ファイル操作を実行したりできます。

于 2013-05-18T20:20:22.333 に答える
0

ソリューションに Windows ストア以外のコンポーネントを含める場合は、回避策があります。プロセスを直接起動することはできませんが、サンドボックス化された Windows ストア (Metro スタイル) アプリからのコマンドをリッスンし、Explorer (またはその他のプロセス) を起動する Windows サービス内で HTTP リスナーをいつでも実行できます。これを行う簡単な方法は、Windows サービス内の Web API サービスです。コントローラーに GET アクションを実装し、実行可能ファイルを起動するための引数と、オプションで実行可能引数も用意します。

ただし、これはサンドボックス セキュリティのエンドランを行うようなものであるため、事前にパッケージ化された一連のアプリ (Explorer や独自のアプリの 1 つなど) を起動するだけの、調整された Web API が必要になる場合があります。

もちろん、消費者向けアプリの場合、Windows ストアからすべてをインストールすることはできないため、これは適切なソリューションではありません。ただし、LOB アプリの場合、通常は環境をより細かく制御できるため、これは悪い妥協ではありません。これは、一部の指標やその他のデータをライブ タイルに表示し、タイルがクリックされたときにデスクトップ アプリを起動するのに適した方法です。これが優れたユーザー エクスペリエンスにつながるかどうかは、まったく別の話です。

于 2012-12-03T16:19:31.677 に答える