如何找到没有文件类型的文件?

时间:2019-03-16 11:52:28

标签: c#

我的问题与该问题相同,但对于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等未知。如何查找没有文件类型的文件?

我是否必须坚持所有图像均以特定文件格式提交?

最优雅的方法是什么?

2 个答案:

答案 0 :(得分:3)

一种天真的方法是读取目录中的文件名,然后读取与您要查找的文件名匹配的文件。

// 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() 可能不是您想要的。您应该根据文件名适当更改此设置。例如。您可以使用带有连字符7c7cdab9-0db7-4ad1-93c1-96ddc92aadaa的GUID或不带有连字符44e0391b22bb48018aa6aab517a59238的GUID。 Here,您将找到所有相应的格式化程序,以便选择适合您情况的格式化程序。

答案 1 :(得分:0)

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

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

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

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