gpt4 book ai didi

c# - 文件已在使用 FileAccess C#

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:37 27 4
gpt4 key购买 nike

public void WriteListToFile(Lists lists, string filePath)
{
FileStream outFile;
BinaryFormatter bFormatter = new BinaryFormatter();

// Ppen file for output
outFile = new FileStream(filePath, FileMode.Create, FileAccess.Write);

// Output object to file via serialization
bFormatter.Serialize(outFile, lists);

// Close file
outFile.Close();
}

每当我尝试将数据输出到 .dat 文件时,我都会收到一条错误消息,指出该文件已在使用中。我该如何解决这个问题?

美国东部时间:原来它不允许我保存到一个空文件,所以我创建了一个新的空白来输入数据,然后它允许我保存文件。

最佳答案

直接的答案是“释放某个进程对该文件的锁定”。

有些东西已经打开了文件。您需要查看可能访问该文件的代码和其他进程以找到根本原因。

我注意到您没有使用 using 语句。如果在您显示的代码块中抛出异常,outputFile.Close() 将永远不会执行,使文件保持打开状态。

尝试像这样重写您的代码(以及任何类似的代码)

public void WriteListToFile(Lists lists, string filePath)
{
BinaryFormatter bFormatter = new BinaryFormatter();

// Ppen file for output
using (FileStream outFile = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{

// Output object to file via serialization
bFormatter.Serialize(outFile, lists);

// Close file
outFile.Close();
}
}

using 关键字是一个语法快捷方式

var outFile = new FileStream(filePath, FileMode.Create, FileAccess.Write);
try
{
// Do stuff with outFile
}
finally
{
outFile.Dispose();
}

并确保无论是否抛出异常,outFile 都会被释放(这也会关闭它)。

关于c# - 文件已在使用 FileAccess C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15076681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com