locked
ローカルファイルへのアクセス方法 RRS feed

  • 質問

  • お世話になります。
    現在、C# + silverlight2.0で動的なファイルアクセスを実現したいと考え、
    開発時の一時的な処理として、Xamlに記述せずローカルファイルへの
    アクセスを実行したく、試行錯誤しています。
    いくつか試しましたが、以下の結果になり手詰まり状態です。

    WebClient
    URIがhttp又はhttpsでない場合は例外。

    File、FileStream
    SecurityCritical属性の為、触れませんでした。

    当方、Express Editionの為Silverlight Tools Beta1が入っていないので
    プロジェクトに設定が足りていない可能性もあります。
    何か良い方法、又は上記メソッドについて私の誤解等ありましたら
    指摘して頂けませんでしょうか?

    2008年3月31日 5:24

回答

  • 青柳さん、どっとねっとふぁんさん
    返答ありがとうございました。
    お二方のアドバイスを参考にドキュメントを再度確認したところ、
    OpenFileDialog
    というクラスにたどり着き、無事ファイル選択→内容の読み込みまで実行できました。

    あやうく、xamlを動的にメモリ上で生成し、なんとかApplication.LoadComponent
    に読み込ませ、<Image Source=>で指定したバイナリのデータをどうにか取得できれば‥
    と、混沌とした思考に引き込まれるところでした。
    本当にありがとうございました。
    2008年4月1日 6:45

すべての返信

  • おそらく無理じゃないでしょうか。

     

    http://msdn2.microsoft.com/en-us/library/bdts8hk0(vs.95).aspx
    こちらにも 「In Silverlight, all I/O operations are restricted to isolated storage and do not use the file system of the operating system. (Silverlight ではすべての I/O 操作はアイソレーテッド・ストレージに制限され、OS のファイルシステムは使えない)」 と書いてあります。

     

    そうでないと、「ハードディスク内のファイルを勝手に書き換える」 とか 「ハードディスク内のファイルを勝手に送信する」 とかいったコントロールを作成されてしまう可能性がでてきます。

    セキュリティ設定でなんとかなるのかとも思いましたが、上記の記述を見る限りアイソレーテッド・ストレージ以外のローカルファイルへのアクセス方法自体が用意されていないように見えます。

    FileOpenDialog や FileSaveDialog が欲しい (これらはユーザがアクセスしていいファイルを明示するので安全と考えられる) と言う話は前々から出ていたようですが、2.0 には入らなかったのかな?

    2008年4月1日 1:23
  • 日経ソフトウェア5月号の記事の中にファイルを開くダイアログが提供されている、という話があったように思います。

    いま手元にないので確認できないんですが。。。

    2008年4月1日 1:53
  • 青柳さん、どっとねっとふぁんさん
    返答ありがとうございました。
    お二方のアドバイスを参考にドキュメントを再度確認したところ、
    OpenFileDialog
    というクラスにたどり着き、無事ファイル選択→内容の読み込みまで実行できました。

    あやうく、xamlを動的にメモリ上で生成し、なんとかApplication.LoadComponent
    に読み込ませ、<Image Source=>で指定したバイナリのデータをどうにか取得できれば‥
    と、混沌とした思考に引き込まれるところでした。
    本当にありがとうございました。
    2008年4月1日 6:45