将Excel工作表转换为CSV后,我无法立即读取CSV文件。我收到错误:"进程无法访问该文件..因为它正被另一个进程使用。"
我的代码是:
csvFilePath = AppSettings.exportFileFolderPath + @"\Temp002.csv";
ws.SaveAs(csvFilePath, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
allLines = File.ReadAllLines(csvFilePath);
此时,如果我放置一个断点并尝试在Windows资源管理器中重命名该文件,我也会在资源管理器中遇到相同的错误。但是在调试器抛出异常并且程序结束后,我立即能够在资源管理器中重命名该文件。
问题和解决方案是什么?
编辑1: 这似乎有效:
string csvFilePath1 = AppSettings.exportFileFolderPath + @"\Temp001.001";
ws.SaveAs(csvFilePath1, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
ws = wSheets.get_Item("Dummy") as Excel.Worksheet;
string csvFilePath2 = AppSettings.exportFileFolderPath + @"\Temp001.002";
ws.SaveAs(csvFilePath2, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
string[] allLines = File.ReadAllLines(csvFilePath1);
但只是想知道是否还有更好的方式?