文件.副本访问被拒绝

本文关键字:拒绝 访问 副本 文件 | 更新日期: 2023-09-27 17:54:56

我有一个问题,从本地磁盘复制到闪存。代码之前可以工作,但在我创建另一个foreach循环之后,我必须创建新对象File。复制功能不再工作了。在值File | System.IO.File中有如下值:Error_Access_Denied | 5, Error_Invalid Parameter| 87, GetFileExInfoStandard | 0.

edit: 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:''的一部分。

文件.副本访问被拒绝

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