我的代码:
object c = "d:\\1.doc";
if(File.Exists(c.ToString()))
{
File.Delete(c.ToString());
}
错误:
该进程无法访问文件'd:\ 1.doc',因为它正在被使用 通过另一个过程。
有多近?代码
答案 0 :(得分:1)
首先使用string
代替object
,所以:
string c = "d:\\1.doc";
现在,因为消息指示该文件正由另一个进程使用。要么是通过Windows进程,要么是打开文件流而忘记关闭它。检查代码中与文件交互的位置。
修改:由于您使用的是Microsoft.Office.Interop.Word
,请确保先关闭文件,如:
Word.ApplicationClass word = new Word.ApplicationClass();
//after using it:
if (word.Documents.Count > 0)
{
word.Documents.Close(...);
}
((Word._Application)word.Application).Quit(..);
word.Quit(..);
答案 1 :(得分:1)
当我想在使用Microsoft.Office.Interop.Word
打开/阅读文件后删除文件时,我遇到了同样的问题,我需要关闭我的文档和类似的应用程序:
private void parseFile(string filePath)
{
// Open a doc file.
Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
Document document = application.Documents.Open(filePath);
// Loop through all words in the document.
int count = document.Words.Count;
for (int i = 1; i <= count; i++)
{
// Write the word.
string text = document.Words[i].Text;
Console.WriteLine("Word {0} = {1}", i, text);
}
// Close document correctly
((_Document)document).Close();
((_Application)application).Quit();
}
答案 2 :(得分:0)
您在此程序或其他程序中主动打开该文件,Windows会阻止您在此情况下将其删除。
答案 3 :(得分:0)
检查文件是否仍由另一个应用程序运行(打开)
1- Microsoft Word
2- WordPad