我的问题与该问题相同,但对于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 :(得分: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格式仍然存在相同的问题,但是至少您没有获取目录中的所有文件名。
如果您希望目录中有很多文件,那就更好了。