エンドユーザーのバックアップ復元メカニズムを実装することを目的としたSilverlightアプリケーションがあります。
riaサービスを介してWebSiteプロジェクトにある特定のディレクトリ内のファイルのリストを取得する必要があります。
どのオブジェクトを使用することで、 WebSiteプロジェクトの特定のディレクトリにあるファイルを一覧表示できるようになります。
ご清聴ありがとうございました。
エンドユーザーのバックアップ復元メカニズムを実装することを目的としたSilverlightアプリケーションがあります。
riaサービスを介してWebSiteプロジェクトにある特定のディレクトリ内のファイルのリストを取得する必要があります。
どのオブジェクトを使用することで、 WebSiteプロジェクトの特定のディレクトリにあるファイルを一覧表示できるようになります。
ご清聴ありがとうございました。
Directoryクラスを使用して、サーバー上のファイルを列挙できます。ドメインサービスにメソッドを追加してファイル名のリストをSilverlightクライアントに返すことは、その後はかなり簡単なはずです。
http://msdn.microsoft.com/en-us/library/system.io.directory(v=vs.100).aspx
答えはある種のハックです。クライアントのIPアドレスをサービスに送信するために使用した方法に触発されました。
default.aspxで、このパラメーターをSilverlightオブジェクトに追加します。
<param name="initParams" value="clientIP=<%=Request.UserHostAddress%>,serverPath=<%=Server.MapPath(".")%>" />
そして、Silverlightアプリケーションでは:
public string ClientIP=string.Empty;
public string ServerPath = string.Empty;
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
try
{
ClientIP = e.InitParams["clientIP"].ToString();
ServerPath = e.InitParams["serverPath"].ToString();
}
catch
{
}
}
ロギングの問題のためにクライアントIPをxapファイルに送信したと考えてください。気になる場合は省略できます。
そしてSilverlightアプリケーションではこのようにサービスメソッドを呼び出します:
ser.GetFileList(((App)(App.Current)).ServerPath, FilesListReceived, null);
そしてサービス側:
public List<string> GetFileList(string baseDirectory)
{
var result = new List<BRFile>();
var files =Directory.EnumerateFiles( baseDirectory + "\\DBBackup" );
....
}
幸運を。