File.Copy访问被拒绝

时间:2013-01-21 09:09:44

标签: c# file-io copy .net

我遇到从本地磁盘复制到闪存的问题。代码之前有效,但是在我创建了一个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:\'的一部分。

1 个答案:

答案 0 :(得分:0)

最有可能在创建新文件后,您没有关闭FileStream。使用FileStream关闭新创建文件的myFile.Close();或在using (var myFile = File.Create(myPath))块内创建新文件。