Search code examples
silverlightwcf-ria-servicesserver-sidefile-listing

Silverlight application ria service list files in service side


Having a silverlight application, intended to implement backup restore mechanism for the end user.

I have to get list of files in a specific directory resided in WebSite project via ria services.

By using which object I will be able to list files in specific directory of WebSite project.

Thanks for your attention.


Solution

  • The answer is some kind of hack. I was inspired by the method that I have used to send client IP address to the service.

    In default.aspx add this param to your silverlight object :

    <param name="initParams" value="clientIP=<%=Request.UserHostAddress%>,serverPath=<%=Server.MapPath(".")%>" />
    

    And in silverlight application :

        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 
            {
            }
        }
    

    Consider that I sent client ip to the xap file for logging issues. You can omit it if you care.

    and in Silverlight application call service method in this way :

     ser.GetFileList(((App)(App.Current)).ServerPath, FilesListReceived, null);
    

    And the service side :

     public List<string> GetFileList(string baseDirectory)
     {
            var result = new List<BRFile>();
    
            var files =Directory.EnumerateFiles(  baseDirectory + "\\DBBackup" );
    
            ....
     }
    

    Good Luck.