如何在C#中动态路径到远程服务器文件夹?

时间:2013-06-07 18:10:38

标签: c# directory getfiles registerstartupscript

好的,经过大量的谷歌搜索和尝试不同的事情,这可能是一件简单的事情,我搞砸了。

基本上我正在做的是从网址解析productID并将XL.jpg添加到最后。例如,假设产品ID为1234,程序将在PathToFolder(C:// LiveSite / img / XL /)中提供的文件夹中搜索1234XL.jpg。

一切都按计划进行,直到路径部分。它解析url将XL.jpg添加到最后甚至遵循我设置的路径,但是我得到一个错误,“地址不明白。火狐不知道如何打开这个地址,因为协议(c )与任何程序无关。“其他浏览器只有一个空白窗口。

这是我浏览器中显示的内容:c://LiveSite/img/XL/1234XL.jpg

protected void OpenImg_Click(object sender, EventArgs e)
                {
                    int i = 0;

                    string PathToFolder = "C://LiveSite/img/XL/";

                    var dirInfo = new DirectoryInfo(PathToFolder);
                    string FileName = Variables.param + "XL.jpg";
                    var foundFiles = dirInfo.GetFiles(FileName);

                    if (foundFiles.Length == 1)
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "openFoundImage", "window.open('" + PathToFolder + foundFiles[i].Name + "');", true);
                    }
                }
            }
       }

我搞砸了什么,它不会通往服务器?有什么我应该使用而不是C://?我试过用另一种方式翻转斜杠并使用C:/ none工作。

提前感谢您的帮助。

编辑:

对此感到抱歉。图像不在我的计算机或项目中。它们位于远程服务器上,如果重要的是sql server。如果我想链接到服务器,我不确定我是否正确启动目录。

在服务器上,我想将它链接到C:// LiveSite / img / XL /中文件夹的路径。现在我知道,如果我在该服务器上执行此操作,则只会打开它。那么如何从互联网浏览器链接到该文件夹​​?我可以使用我编写的代码吗?还是我必须以全新的方式进行操作?

这是一个asp.net Web应用程序

2 个答案:

答案 0 :(得分:1)

如果C://LiveSite/是您的网站根目录,那么您可以使用此

protected void OpenImg_Click(object sender, EventArgs e)
{
    int i = 0;

    string PathToFolder = "C://LiveSite/img/XL/";

    string webRootPathToFolder = ResolveUrl("~/img/XL/");
    var dirInfo = new DirectoryInfo(PathToFolder);
    string FileName = Variables.param + "XL.jpg";
    var foundFiles = dirInfo.GetFiles(FileName);

    if (foundFiles.Length == 1)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "openFoundImage", "window.open('" + webRootPathToFolder + foundFiles[i].Name + "');", true);
    }
}

答案 1 :(得分:0)

尝试类似this的内容:

file:///c:/path/to/the%20file.txt

如果必须......在浏览器中打开本地文件并不是一种广泛使用的技术。

它只适用于您的计算机。如果浏览器未在与网站相同的计算机上运行,​​则此逻辑无法运行。

您应该考虑服务器以字节[]的形式将文件内容发送到浏览器的解决方案。 There is an example of that here