在Virtual目录中获取带有DirectoryInfo的文件

时间:2013-08-30 08:31:09

标签: asp.net image directoryinfo

我有一个像这样的arrav字符串:

string[] imgList = new[] { "/Images/10000489Back20130827.jpg", "/Images/2F.jpg", "/Images/10000489Front20130827.jpg" };

包含virtaul目录中包含的文件名。

如果我将此参数分配给ImageUrl,则会显示图像。在页面的细节显示这样的属性:

src="/Images/1F.jpg"

但是当我尝试在特定目录中查找所有文件并分配给ImageUrl rpoperties的文件时,它们不会显示图像。我注意到路径检索完成,而不是virtaul目录的引用

string path = "/Images"; ///Obtener el path virtual

DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.jpg");

imgList = files.Where(x => x.FullName.Contains(clientNumber)).Select(x => x.FullName).ToList().ToArray();

我检索此路径:

src="C:/Images/1F.jpg"

如何使用DirectoryInfo类仅获取具有文件名的虚拟路径?

3 个答案:

答案 0 :(得分:1)

试试这个:

string path = "/Images";
DirectoryInfo directoryInfo = new DirectoryInfo(Server.MapPath(path));

答案 1 :(得分:0)

我解决了它:

而是传递完整路径:

x.FullName

我将虚拟路径与文件名连接起来。

path + x.Name

实施例

imgList = files.Where(x => x.FullName.Contains(clientNumber)).Select(x => path + x.Name).ToList().ToArray();

答案 2 :(得分:0)

在虚拟路径中显示图像(C:\ Users \ User \ Desktop \ Signature.png):其工作

我使用Try Catch避免错误

Cliend Side:

asp:Image runat =" server" ID =" IMAGE1" />

服务器端:

试         {

        Byte[] bytes = System.IO.File.ReadAllBytes(@"C:\Users\User\Desktop\Signature.png");
        Image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes, 0, bytes.Length);
        Image1.Visible = true;

    }

    catch (Exception e)
    {

    }