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

本文关键字:服务器 文件夹 路径 动态 | 更新日期: 2023-09-27 18:17:29

好了,经过大量的谷歌搜索和尝试,这可能是一些简单的东西,我搞砸了。

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

一切都按计划进行,直到路径部分。它解析url,将xml .jpg添加到末尾,甚至遵循我设置的路径,但我得到一个错误,"地址未被理解。"Firefox不知道如何打开这个地址,因为协议(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应用程序

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

如果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);
    }
}

试试这样:

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

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

它只能在你的电脑上工作。如果浏览器和网站不在同一台机器上运行,这个逻辑就行不通了。

你应该考虑这样一个解决方案:服务器将文件的内容以byte[]的形式发送给浏览器。这里有一个例子

相关文章: