我正在 WPF 应用程序中执行图像读取/复制操作。请看以下代码:
try
{
if (sourceDir != "")
File.Copy(sourceDir, Path.Combine(backupDir, ecode + ".jpg"), true);
}
catch (Exception exx)
{
MessageBox.Show(exx.ToString());
}
现在让我们用一个场景来解释问题:
第一次执行此代码时sourceDir
,Path.Combine(backupDir, ecode + ".jpg")
值是:
sourceDir ="C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"
Path.Combine(backupDir, ecode + ".jpg" ) ="D:\IEPL-archives-Do not Modify\DATA\654.jpg"
它第一次工作正常,文件被复制到其目标文件夹。
但是第二次使用以下值执行此代码时:
sourceDir ="C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg"
Path.Combine(backupDir, ecode + ".jpg") ="D:\ IEPL-archives-Do not Modify\DATA\654.jpg"
它抛出以下异常:
我也在 UI 中显示相同的图像,这导致了这个异常。这是在 UI 中显示图像的代码:
image1.Source = new BitmapImage(new Uri(GetPicture(txtBarcode.Text), UriKind.RelativeOrAbsolute));
private string GetPicture(string _eid)
{
string picname = "";
if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".jpg"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".jpg";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".jpeg"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".jpeg";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".png"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".png";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".gif"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".gif";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".JPG"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".JPG";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".JPEG"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".JPEG";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".PNG"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".PNG";
else if (File.Exists(@"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".GIF"))
picname = @"D:\IEPL-archives-Do not Modify\DATA\" + _eid + ".GIF";
else
picname = @"Images\defaultPicture.jpg";
return picname;
}
请建议我如何修改代码以免出现这种冲突?谢谢