【问题标题】:Taking path to IIS virtual catalog content获取 IIS 虚拟目录内容的路径
【发布时间】:2017-03-14 11:57:21
【问题描述】:

我正在尝试获取 IIS 虚拟目录的路径,但我的解决方案返回了我

file:///E:/​​Programy%20C#!Katalog2\Katalog2\MvcApplication1\Views\Home\jpg\1001\1\0

我的代码:

public ActionResult Searcher(string symbol, string dekoracja)
    {

        if (symbol != "" && dekoracja != "")
        {
            MyModel.Symbol = symbol;
            MyModel.Dekorajca = dekoracja;
            string path = Server.MapPath(Url.Content(@"~/Images/jpg/" + PathBuilder.Instance.pathBuilder(symbol, dekoracja)));

            DirectoryInfo Dir = new DirectoryInfo(path);
            try
            {
                FileInfo[] FileList = Dir.GetFiles("*jpg");


                foreach (FileInfo fileInfo in FileList)
                {
                    //tylko jpg ma wyswietlac do refaktoryzacji
                    MyModel.ImageList.Add(fileInfo.FullName);
                }
            }...

我是 asp.net 的新手,我不知道如何选择正确的路径 (~/Vievs/Home/Jpg/...),我需要将它放入图像 src。 Symbol 和 Dekoracja 是 ActionResult 参数中给出的文件夹名称。

public class PathBuilder
{
    public static readonly PathBuilder Instance = new PathBuilder();
    public string pathBuilder(string Symbol, string Dekoracja)
    {
        return Symbol + @"\" + Dekoracja + @"\";
    }
}

【问题讨论】:

  • 你没有解释你期望的结果是什么。或者你想要的路径(例如在<img>标签中使用)
  • 您也没有解释过symboldekoracja 的用途,或者您的PathBuilder 的用途。
  • 您是说您在\Views\Home\jpg 下有一个名为1001 的子文件夹,其中包含一个名为1 的子文件夹?
  • 完全正确,我无法更改此结构。
  • 你的图片不应该在/Views文件夹中——那是为了查看(正如名字所暗示的那样)你为什么不能改变它?

标签: c# asp.net iis


【解决方案1】:

您的图片不应位于您的 /Views 文件夹中。在您的应用程序中创建一个新文件夹(例如Images),然后生成要在<img> 标记的src 属性中使用的路径的代码应该是

string folder = String.Format("Images/{0}/{1}", symbol, dekoracja); // or whatever you call your folder
var path = Server.MapPath(folder);
FileInfo[] files = new DirectoryInfo(path).GetFiles(); // or GetFiles("*jpg") if it contains other image types
List<string> imageList = files.Select(x => String.Format("/{0}/{1}", folder, x.Name)).ToList();

【讨论】:

  • 抛出异常:找不到路径 E:\Programy C#\!Katalog2\Katalog2\MvcApplication1\Home\Images\1001\1 的一部分。所以我们仍然在创建错误的路径。
  • 那么该文件夹不存在 - 您尚未创建名为 Images 的文件夹,其子文件夹名称为 1001,其中包含子文件夹名称 1
  • 那条路径中的C#\! 位到底是什么?
  • 它是我每个 c# 项目的目录 ;-)
  • 你真的很喜欢把事情复杂化 :)
猜你喜欢
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 2011-09-19
  • 2010-10-11
  • 2013-07-21
  • 2017-03-17
  • 1970-01-01
  • 2011-06-10
相关资源
最近更新 更多