gpt4 book ai didi

c# - 在 Ubuntu Linux 上另存为期间共享冲突

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:45 26 4
gpt4 key购买 nike

我是 C# 的新手,在保存到新文件时遇到了一些问题。我的程序有两个保存选项:保存和另存为。

我在保存时遇到共享冲突错误,但我通过关闭之前的文件流修复了该错误。但是,我仍然无法弄清楚为什么我的另存为代码会出现共享冲突错误。

代码如下:

        // get a file stream from the file chooser
FileStream file = File.OpenWrite(saveFc.Filename);
// check to see if the file is Ok
bool fileOk = file.CanWrite;
if (fileOk == true)
{
// get the filename
string filename = file.Name;
// store the filename for later use
UtilityClass.filename = filename;
// get the text from textview1
string text = textview1.Buffer.Text;
// get a StreamWriter
StreamWriter writer = File.CreateText(filename);
// write to the file
writer.Write(text);
// close/save the file
writer.Close();
file.Close();
}
}
// close the file c

如果你能帮我弄清楚,我将不胜感激。谢谢!

最佳答案

您打开同一个文件两次:

FileStream file = File.OpenWrite(saveFc.Filename);

和:

string filename = file.Name;
StreamWriter writer = File.CreateText(filename);

您的代码可能会被简化为:

using (var writer = File.CreateText(saveFc.Filename))
{
// store the filename for later use
UtilityClass.filename = saveFc.Filename;

// get the text from textview1
string text = textview1.Buffer.Text;

// write the text
writer.Write(text);
}

如果您使用 CreateText/OpenWrite 打开文件,它将始终是可写的(否则将抛出异常)。 using block 将在退出时自动关闭 writer

关于c# - 在 Ubuntu Linux 上另存为期间共享冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255975/

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