none
如何获取服务器上的路径? RRS feed

  • 问题

  • 你好:

         我现在在使用WPF XBAP 开发项目,现在遇到了一问题,网上搜搜没有满意的答案,所以来这边发布一下问题。

    新功能:可以将文件上传到服务器的任意位置,我们是通过服务WCF来上传文件,也就是知道路径就能传,那么WPF有没有方法可以获取到服务端的存放代码的路径。

    如 在192.168.1.11上 的D://webfile/部署了WPF  XBAP程序,那么能否动态的知道,这个目录下面有哪些文件夹及所有子文件夹? 

    2014年7月30日 6:34

答案

  • 你好,

    如果我没有理解错的话,应该是你需要使用这个属性:

    #BrowserInteropHelper.Source Property
    http://msdn.microsoft.com/en-us/library/system.windows.interop.browserinterophelper.source.aspx

    Gets the uniform resource identifier (URI) for the location from which a XAML browser application (XBAP) application was launched.

    通过它得到的路径类似这样:

    file:///D:/WpfBrowserApplication1/WpfBrowserApplication1/bin/Debug/WpfBrowserApplication1.xbap

    经过简单处理,可以转换为当前目录路径,然后用递归函数遍历文件夹和文件,以下为我的示例:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
                MessageBox.Show(BrowserInteropHelper.Source.ToString());
                DirSearch(BrowserInteropHelper.Source.ToString().Replace("file:///","")+"/../");
    }
    
    static void DirSearch(string dir)
    {
                try
                {
                    foreach (string f in Directory.GetFiles(dir))
                        Debug.WriteLine(f);
                    foreach (string d in Directory.GetDirectories(dir))
                    {
                        Debug.WriteLine(d);
                        DirSearch(d);
                    }
    
                }
                catch (System.Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
    }

    Debug输出:


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年7月31日 7:31
    版主

全部回复

  • 你好,

    如果我没有理解错的话,应该是你需要使用这个属性:

    #BrowserInteropHelper.Source Property
    http://msdn.microsoft.com/en-us/library/system.windows.interop.browserinterophelper.source.aspx

    Gets the uniform resource identifier (URI) for the location from which a XAML browser application (XBAP) application was launched.

    通过它得到的路径类似这样:

    file:///D:/WpfBrowserApplication1/WpfBrowserApplication1/bin/Debug/WpfBrowserApplication1.xbap

    经过简单处理,可以转换为当前目录路径,然后用递归函数遍历文件夹和文件,以下为我的示例:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
                MessageBox.Show(BrowserInteropHelper.Source.ToString());
                DirSearch(BrowserInteropHelper.Source.ToString().Replace("file:///","")+"/../");
    }
    
    static void DirSearch(string dir)
    {
                try
                {
                    foreach (string f in Directory.GetFiles(dir))
                        Debug.WriteLine(f);
                    foreach (string d in Directory.GetDirectories(dir))
                    {
                        Debug.WriteLine(d);
                        DirSearch(d);
                    }
    
                }
                catch (System.Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
    }

    Debug输出:


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年7月31日 7:31
    版主
  • 回复晚了,因为但是我们公司用服务来解决了这个问题,今天我把你这边的代码拿过来试了一下,本机调试确实如此,但是放在服务器上之后报错“不支持URI”格式。

    2014年8月18日 1:28