代码之家  ›  专栏  ›  技术社区  ›  w0051977

如果没有文件类型,如何查找文件?

c#
  •  1
  • w0051977  · 技术社区  · 7 年前

    我的问题与这个问题相同,但对于c#: PHP, get file name without file extension

    请参见下面的代码:

    [HttpGet("{id}")]
    public ActionResult<byte[]> Get(Guid id)
    {
        return System.IO.File.ReadAllBytes("Pictures\\" + id );
    }
    

    文件类型(如jpeg、gif等)未知。如果没有文件类型,如何查找文件?

    我必须坚持所有图片都以特定的文件格式提交吗?

    最优雅的方式是什么?

    0 回复  |  直到 7 年前
        1
  •  3
  •   Christos    7 年前

    A. 缺乏经验的

    // You might have to change the location of the directory
    var files = Directory.GetFiles(@"Pictures\");
    
    foreach(var file in files)
    {
        if(file.Contains(id.ToString()))
        {
             return System.IO.File.ReadAllBytes("Pictures\\"+file);
        }
    }
    

    使命感 id.ToString() 可能不是 你要找的。您应该根据文件名对此进行适当更改。例如,您可以使用带有连字符的guid 7c7cdab9-0db7-4ad1-93c1-96ddc92aadaa 或者不带连字符的guid 44e0391b22bb48018aa6aab517a59238 . Here 您将找到所有相应的格式化程序,以便选择适合您的案例的格式化程序。

        2
  •  0
  •   Jaguar    7 年前

    与上述方法相比,更好的方法是使用允许模式的重载:

    var files = Directory.GetFiles("", $"*{id}*") (当然,星号可以根据需要省略)

    对于确切的Guid格式,您仍然存在同样的问题,但至少您没有获取目录中的所有文件名。

    如果你希望目录中有很多文件,那就更好了。