指定したフォルダのファイル一覧と特殊フォルダへのアクセス
指定したフォルダ内のファイル一覧を取得する
今回はSilverlight 4でサポートされた、COMオートメーションを使って、指定したフォルダにアクセスし、ファイルの一覧を表示させるサンプルと、特殊フォルダへのアクセス、の2つを紹介します。これらのアプリケーションは信頼されたTrustedモードのブラウザ外実行で動作します。ブラウザ外実行については後述します。
まずは、COMオートメーションを使った、任意のフォルダへのアクセスを可能にするサンプルの紹介です。
実装する機能の動作は次の通りです。
信頼されたTrustedモードのブラウザ外実行で実行した後、「フォルダ名」の横にレイアウトされている、TextBoxに任意のフォルダ名を入力します。このサンプルでは、「C:\Windows」と入力し、[OK]ボタンをクリックします。すると、C:\Windows内のファイル一覧が表示されます(図1)。
図1: C:\Windows内のファイル一覧が表示されている(クリックで拡大) |
サンプル・ファイルはこちらからダウンロードできます。
新規プロジェクトの作成と依存関係の設定
早速サンプルを作っていきましょう。
前回までのサンプル作成時と同様の手順で、新規Silverlight 4プロジェクト(プロジェクト名は「SL4_COM_GetFile」)を作成し、プロジェクトの依存関係も設定しておきます。
VS 2010のデザイン画面上で、コントロールをレイアウトする
UserControlのWidthに800、Heightに600を指定してデザイン領域を広くしておきます。今回使うコントロールは、アプリケーションのタイトルを表示するためのTextBlockコントロール、項目名を表示するLabelコントロール、フォルダ名を入力するTextBoxコントロール、[OK]用のButtonコントロール、ファイルの一覧を表示するListBoxコントロールの5つです。
TextBlock(1)、Label(2)、TextBox(3)、Button(4)、ListBox(5)コントロールを、デザイン画面上にドラッグ&ドロップします(図2)。
図2: 今回使う5つのコントロールを、デザイン画面上にドラッグ&ドロップする |
コントロールをレイアウトできたら、[プロパティ]内の[共通]、[レイアウト]、[ブラシ]、[テキスト]等を展開して表示される各プロパティを設定して、デザインを整えます。TextBlockコントロールのText、フォントのサイズ、太字、LabelのContent、ButtonのContent、ListBoxのWidthやHeightプロパティを設定しておきましょう(図3)。
図3: 各コントロールのプロパティを設定した |
これによって書き出されるXAMLコードは省略します。
信頼されたTrustedモードによるOut-of-browser(ブラウザ外実行)の設定
VS 2010のメニューから「プロジェクト(P)> SL4_COM_GetFile のプロパティ(P)」を選択し、「Silverlight」ペインの「アプリケーションのブラウザ外実行を有効にする(B)」にチェックを付けます。
さらに、「デバッグ」ペインの「開始動作」も設定してみましょう。デフォルトでは「ブラウザ外実行アプリケーション(I)」にチェックが付いています。この状態で実行すると、即座にブラウザ外実行で動作するようになります。
今回は、このデフォルトの設定ではなく、「テスト ページを動的に生成する(Y)」に変更してみましょう(図4)。
図4: 「アプリケーションのブラウザ外実行を有効にする(B)」にチェックを付け、「テスト ページを動的に生成する(Y)」に変更しておく(クリックで拡大) |
「Silverlight」ペインに戻り、 [ブラウザ外実行の設定(S)]ボタンをクリックすると、「ブラウザ外実行の設定」画面が表示されます。
この画面では、ブラウザ外実行時の各種設定を変更することができます。
今回のサンプルでは、「ブラウザ外での実行時に昇格された信頼を要求する(E)」の個所にチェックを付け、信頼されたTrustedモードで実行するようにしておきましょう(図5)。
図5: Trustedモードに設定する |