我的代码是这样的:
using (var openFileDialogForImgUser = new OpenFileDialog())
{
string location = null;
string fileName = null;
string sourceFile = null;
string destFile = null;
string targetPath = @"..\..\Images";
openFileDialogForImgUser.Filter = "Image Files (*.jpg, *.png, *.gif, *.bmp)|*.jpg; *.png; *.gif; *.bmp|All Files (*.*)|*.*"; // filtering only picture file types
openFileDialogForImgUser.InitialDirectory = @"D:\My Pictures";
var openFileResult = openFileDialogForImgUser.ShowDialog(); // show the file open dialog box
if (openFileResult == DialogResult.OK)
{
using (var formSaveImg = new FormSave())
{
var saveResult = formSaveImg.ShowDialog();
if (saveResult == DialogResult.Yes)
{
imgUser.Image = new Bitmap(openFileDialogForImgUser.FileName); //showing the image opened in the picturebox
fileName = openFileDialogForImgUser.FileName;
location = Path.GetDirectoryName(fileName);
sourceFile = System.IO.Path.Combine(location, fileName);
destFile = System.IO.Path.Combine(targetPath, fileName);
if (!System.IO.Directory.Exists(targetPath))
{
System.IO.Directory.CreateDirectory(targetPath);
}
System.IO.File.Copy(sourceFile, destFile, true); /* error occurs at this line */
}
else
openFileDialogForImgUser.Dispose();
}
}
}
我想要做的是,我提示用户在打开文件对话框选择图像,并且图像复制到不同的目录(TARGETPATH,特别是)。 一切似乎除了那一条线做工精细: System.IO.File.Copy(sourceFile, destFile, true);
。
它说,该文件是专门用于被另一个进程使用。 这种情况发生,因为我选择的任何图像。
我想看看别人的溶液(S)对这个问题---我有权终止(或等待)为目前正使用我的文件的过程。 如果是这样,我怎么做呢? 或者,如果这不是这个问题的答案,我该怎么办? 请注意,这是在我的C#解决方案与图像文件涉及代码的唯一的一块。