我遇到从本地磁盘复制到闪存的问题。代码之前有效,但是在我创建了一个foreach循环并且我不得不创建新对象之后,File.Copy功能不再起作用了。 在值文件| System.IO.File有以下值:Error_Access_Denied | 5,Error_Invalid参数| 87,GetFileExInfoStandard | 0
编辑:locationUSB在flash上显示文件路径。 (locationUSB ==“D:\ something.hex”)和x._location ==“C:\ something_1.hex”。
foreach (object item in this.dataGridView2.Rows)
{
versionOnDisk = this.VersionInt(x._version);
versionOnFlash = this.VersionInt(((DataGridViewRow)item).Cells[2].Value.ToString());
if (versionOnFlash > versionOnDisk)
forbidCopying = true;
else
locationUSB = _logicalDrive + ((DataGridViewRow)item).Cells["Filename"].Value.ToString(); // <-- location value (because of the foreach)
if (!forbidCopying)
File.Copy(x._location, locationUSB, true); // <--
else if (AllowDelete.Checked)
File.Delete(locationUSB);
}
编辑: 如果我将位置更改为逻辑驱动器路径,哪个值为“D:\”,我得到DirectoryNotFoundException未处理:找不到路径'D:\'的一部分。
答案 0 :(得分:0)
最有可能在创建新文件后,您没有关闭FileStream
。使用FileStream
关闭新创建文件的myFile.Close();
或在using (var myFile = File.Create(myPath))
块内创建新文件。