在我的项目中,我的目标是编辑和移动文件。为了简化,我已经删除了所有编辑部分,因为它们似乎不会导致错误。我已经使用仅包含此代码的测试出现错误。
这是我的代码:
在运行此操作时,当应用程序尝试移动文件时,我收到了一个错误消息:
这是我的代码:
Application xlApp = new Application();
Workbooks xlWorkbooks = xlApp.Workbooks;
Workbook xlWorkbook = xlWorkbooks.Open(Path.GetFullPath(fileNameWithPath));
Sheets xlWorksheets = xlWorkbook.Sheets;
Worksheet xlWorksheet = xlWorksheets.get_Item(1);
Range xlRange = xlWorksheet.UsedRange;
string fileNameWithExtension = GetFileNameWithExtension(fileNameWithPath);
xlWorkbook.Close(false);
xlApp.Quit();
Marshal.FinalReleaseComObject(xlRange);
Marshal.ReleaseComObject(xlWorksheet);
Marshal.ReleaseComObject(xlWorksheets);
Marshal.ReleaseComObject(xlWorkbook);
Marshal.ReleaseComObject(xlWorkbooks);
Marshal.FinalReleaseComObject(xlApp);
xlRange = null;
xlWorksheet = null;
xlWorksheets = null;
xlWorkbook = null;
xlWorkbooks = null;
xlApp = null;
GC.GetTotalMemory(false);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.GetTotalMemory(true);
File.Move(fileNameWithPath, myNewPath);
在运行此操作时,当应用程序尝试移动文件时,我收到了一个错误消息:
由于另一个进程在使用该文件,因此无法访问该文件。
我相当确定已关闭所有COM对象并完成了网上找到的所有建议,以使其正常工作。您有什么想法,我可能忽略了什么?