C# 使用C时出现Txt文件访问错误#

C# 使用C时出现Txt文件访问错误#,c#,winforms,C#,Winforms,我正在用C#(Winforms)做这个学校项目,我在一个子表单中创建了一个临时文件。。。使用:File.Create(filepath)但当我尝试在主窗体的窗体关闭事件中删除它时。。。然后给出错误消息。另一个进程正在使用该文件。 我试过: 但没什么好的,我需要更好的想法和这个错误产生的逻辑原因?请使用Path.GetTempFileName()创建文件 您不需要自己删除该文件。Windows将为您处理该文件。您应该使用Path.GetTempFileName()创建该文件 您不需要自己删除该文件

我正在用C#(Winforms)做这个学校项目,我在一个子表单中创建了一个临时文件。。。使用:
File.Create(filepath)但当我尝试在主窗体的窗体关闭事件中删除它时。。。然后给出错误消息。另一个进程正在使用该文件。
我试过:


但没什么好的,我需要更好的想法和这个错误产生的逻辑原因?请使用Path.GetTempFileName()创建文件


您不需要自己删除该文件。Windows将为您处理该文件。

您应该使用Path.GetTempFileName()创建该文件


您不需要自己删除该文件。Windows将为您处理它。

文件。创建返回文件流。在尝试删除文件之前,请确保关闭流(或文件的任何其他句柄)。

file.Create
返回文件流。在尝试删除文件之前,请确保关闭流(或文件的任何其他句柄)。

是否在任何其他程序中打开了文件?否。。子窗体创建tmp文件,主窗体中的退出事件应删除此文件。。。。不在其他地方使用。顺便说一句,在windows资源管理器中打开该路径是否会导致此错误?我发现不是使用
File.Create()
。。。。您应该使用
FileStream
创建自定义tmp文件。。。。。示例:
string fileName=“C:\\”+Log.admin.ToString()+”.tmp”;FileStream fs=newfilestream(文件名,FileMode.CreateNew);fs.Close()
以后可以使用
file.Delete(文件名)删除相同的文件。祝所有新的ppl、thx@VinayC和其他人好运,因为他们帮助我解决了这个问题。你有没有在其他程序中打开该文件?没有。。子窗体创建tmp文件,主窗体中的退出事件应删除此文件。。。。不在其他地方使用。顺便说一句,在windows资源管理器中打开该路径是否会导致此错误?我发现不是使用
File.Create()
。。。。您应该使用
FileStream
创建自定义tmp文件。。。。。示例:
string fileName=“C:\\”+Log.admin.ToString()+”.tmp”;FileStream fs=newfilestream(文件名,FileMode.CreateNew);fs.Close()
以后可以使用
file.Delete(文件名)删除相同的文件。祝所有新ppl、thx@VinayC和其他人好运,感谢他们帮助我解决了这个问题。您可以通过使用handle.exe(可通过Microsoft获得)在任何其他程序中打开该文件,如果我只需要创建一个具有特定名称的临时文件,该怎么办?例如:string filepath=“C:\\”+comboBox1.Text+“.tmp”;您应该能够创建文件并将其删除。为什么还要修改文件的属性呢?你可以通过使用handle.exe(可以通过以下方式从Microsoft获得)来确定是否在任何其他程序中打开了该文件:如果我只需要创建一个具有特定名称的临时文件,该怎么办?例如:string filepath=“C:\\”+comboBox1.Text+“.tmp”;您应该能够创建文件并将其删除。为什么还要修改文件的属性呢?我发现不用
file.Create()
。。。。您应该使用
FileStream
创建自定义tmp文件。。。。。示例:
string fileName=“C:\\”+Log.admin.ToString()+”.tmp”;FileStream fs=newfilestream(文件名,FileMode.CreateNew);fs.Close()
以后可以使用
file.Delete(文件名)删除相同的文件。祝所有新的ppl、thx@VinayC和其他人好运,因为他们帮助我解决了这个问题。我发现不用
File.Create()
。。。。您应该使用
FileStream
创建自定义tmp文件。。。。。示例:
string fileName=“C:\\”+Log.admin.ToString()+”.tmp”;FileStream fs=newfilestream(文件名,FileMode.CreateNew);fs.Close()
以后可以使用
file.Delete(文件名)删除相同的文件。祝所有新的ppl、thx@VinayC和其他人好运,因为他们帮助我摆脱了困境。
    if (File.Exists(tmpFile))
    {
    File.SetAttributes(@tmpFile, FileAttributes.Temporary);
    File.Delete(tmpFile);
    }