我有從本地磁盤複製到閃存的問題。之前的代碼工作,但在創建anoteher foreach循環後,我不得不創建新的對象,File.Copy功能不再工作。 在值文件| System.IO.File中有這樣的值:Error_Access_Denied | 5,Error_Invalid參數| 87,GetFileExInfoStandard | 0.File.Copy訪問被拒絕
編輯:locationUSB在閃存上的當前文件路徑。 (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:\」。
訪問被拒絕表示您沒有足夠的權限。無效的參數表示其中一個參數無效。只有你知道你傳遞了什麼參數。我們無法猜測。 –
您是否有權在該位置嘗試複製該文件?我認爲這是問題。在資源管理器中打開該位置並嘗試創建文本文件。如果它不允許你,那麼你肯定沒有權利去那個地方。 –
還檢查該位置是否有效。 –