【问题标题】:How to get image with its name and any extension?如何获取带有名称和任何扩展名的图像?
【发布时间】:2010-10-14 02:02:33
【问题描述】:

我正在建立一个 asp.net 网站。我想在页面上显示图片,但我知道图片名称,但不知道扩展名。

所以,我想打开 images 目录并通过其名称获取图像,无论其扩展名如何。

【问题讨论】:

  • 您在这方面有什么问题?你尝试了什么?发生了什么?

标签: c# asp.net javascript html vb.net


【解决方案1】:

文件实际上并不是这样工作的——您需要知道整个名称。例如,如果有多个具有相同基本名称和不同扩展名的图像会发生什么?例如,比较 foo.pngfoo.jpg

一个建议是尝试对该目录中具有某些基本名称的所有文件进行通配符搜索(这就是 bstoney 的解决方案所做的;see here)。如果你找到一个匹配,你就完成了。如果您获得了多场比赛,则需要制定关于哪一场获胜的规则。

【讨论】:

    【解决方案2】:

    您可以使用 Directory 对象来获取目录中的文件列表

    string imageFilename = System.IO.Directory.GetFiles( imageDirectory, name + ".*" ).First();
    

    【讨论】:

    • 这几乎是一个品味问题,但我宁愿使用 'name + ".*" ' 而不是 concat 函数。最终结果相同,但更具可读性。
    • 它给了我这个错误:“System.ArgumentException: Illegal characters in path.”
    • “System.ArgumentException:路径中有非法字符。”当您没有转义 '\' 字符时会发生尝试 "C:\\" 或 @"C:\"
    • DJ Pirtu,string.Concat 是一种习惯,我们的工作编码风格需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 2020-05-18
    • 2015-05-03
    • 2012-08-12
    • 2021-02-02
    相关资源
    最近更新 更多