C# 访问路径。。。。删除文件时被拒绝

C# 访问路径。。。。删除文件时被拒绝,c#,file-io,filestream,C#,File Io,Filestream,当我试图使用file.delete从特定文件夹中删除一个文件时,有一段时间我遇到了一个问题。如果出现此错误,则拒绝访问该路径 然而,它以前工作正常,文件不是只读的,我有完全的权限 这是用于文件创建的: string tempIeDriverServerFile = Path.Combine(Directory.GetCurrentDirectory(), "IEDriverServer.exe"); using (FileStream file = new FileStream(tempIeD

当我试图使用file.delete从特定文件夹中删除一个文件时,有一段时间我遇到了一个问题。如果出现此错误,则拒绝访问该路径 然而,它以前工作正常,文件不是只读的,我有完全的权限

这是用于文件创建的:

string tempIeDriverServerFile = Path.Combine(Directory.GetCurrentDirectory(), "IEDriverServer.exe");

using (FileStream file = new FileStream(tempIeDriverServerFile, FileMode.CreateNew, FileAccess.Write))
{
    byte[] bytes = Resources.IEDriverServer;

    file.Write(bytes, 0, bytes.Length);
} 
使用后,我必须用此代码删除它

if ((File.Exists(Directory.GetCurrentDirectory() + @"\IEDriverServer.exe")))
{
    File.Delete(Directory.GetCurrentDirectory() + @"\IEDriverServer.exe");
}

此错误表示正在使用该文件;对于exe文件,通常表示进程正在运行。您可以通过使用一个文件解锁程序(如或

检查文件是否正确关闭或其他线程或进程是否访问了文件)来了解文件被锁定的原因。此代码对我来说非常好。我注意到的一点是,您使用Path.Combine创建文件的路径,但是字符串连接用于检查是否存在和删除。你有没有证实他们产生了同样的结果?通常情况下,Path.Combine是首选,尤其是当您需要在Mono上运行时,它避免了在字符串中使用反斜杠,并且在跨平台时是安全的。至少99%的时间您会看到此错误是您自己的代码锁定了文件。特别是在您首先向其写入内容的情况下。此外,根据应用程序所在的路径,它可能无法删除其中的任何内容。这同样适用于执行它的用户。