PR

指定したフォルダのファイル一覧と特殊フォルダへのアクセス

2010年8月5日(木)
PROJECT KySS

指定したフォルダ内のファイル一覧を取得する

今回は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モードに設定する
  • 1

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています

指定したフォルダのファイル一覧と特殊フォルダへのアクセス | Think IT(シンクイット)

Think IT(シンクイット)

サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。