我使用以下代码从磁盘中获取图像。
ImageName
变量包含部分必需文件名。
Image ImageFile = Directory.GetFiles(sourcePath)
.Where(x => x.Contains(ImageName))
.Select(Image.FromFile)
.First();
提供目标路径,如何使用相同的文件名保存到目的地?
答案 0 :(得分:1)
首先,你的代码不应该编译。 FromFile
至少需要一个参数。你可能需要这样的东西:
Image ImageFile = Directory.GetFiles(sourcePath)
.Where(x => x.Contains(ImageName))
.Select(x => Image.FromFile(x))
.First();
然后如上所述保存它,使用Image.Save
方法。像这样:
string newDestinationPath = @"C:\MyFolder\" + ImageName;
ImageFile.Save(newDestinationPath);
在查看代码时,我意识到如果ImageName不是正确的文件名,这将无效。这是一个修正错误的修订:
var ImageFile = Directory.GetFiles(sourcePath)
.Where(x => x.Contains(ImageName))
.Select(x => new { filename = Path.GetFileName(x), image = Image.FromFile(x) })
.First();
string newDestinationPath = @"C:\Temp\test1\" + ImageFile.filename;
ImageFile.image.Save(newDestinationPath);
此修订版将ImageFile强制转换为包含图像及其来源的文件名的匿名类型。这允许2保持在一起并允许使用适当的文件名,而不管使用的搜索字符串如何。此外,这假设每个查询将返回至少一个项目。如果没有,则需要额外的代码来检查查询是否为空。