繁体   English   中英

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

[英]How do you dynamically path to a remote server folder in C#?

好吧,经过大量的谷歌搜索并尝试了不同的事情之后,这可能是我正在搞砸的简单事情。

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

一切都按计划进行,直到出现路径部分。 它解析该URL,在URL末尾添加XL.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:/没有任何作用。

在此先感谢您的帮助。

编辑:

对不起,我很困惑。 图像不在我的计算机或项目中。 它们在远程服务器上(如果重要),在sql服务器上。 我不确定是否要链接到服务器,是否正确启动了目录。

在服务器上,我想将其链接到C:// LiveSite / img / XL /中文件夹的路径,我现在明白,只有在我在该服务器上进行链接时,这样的链接才能打开。 那么如何从Internet浏览器链接到该文件夹​​? 我可以使用我编写的全部代码还是必须以全新的方式使用它?

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

如果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 []的形式发送到浏览器。 这里有一个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM