gpt4 book ai didi

c# - 无法访问文件,因为它正在被另一个程序使用

转载 作者:行者123 更新时间:2023-11-30 22:26:29 33 4
gpt4 key购买 nike

我试图删除行尾的空格,然后该行将写入另一个文件。

但是当程序到达 FileWriter 时,它会给我以下错误

Process can't be accessed because it is being used by another process.

代码如下。

private void FrmCounter_Load(object sender, EventArgs e)
{
string[] filePaths = Directory.GetFiles(@"D:\abc", "*.txt", SearchOption.AllDirectories);
string activeDir = @"D:\dest";
System.IO.StreamWriter fw;
string result;

foreach (string file in filePaths)
{
result = Path.GetFileName(file);
System.IO.StreamReader f = new StreamReader(file);
string newFileName = result;
// Combine the new file name with the path
string newPath = System.IO.Path.Combine(activeDir, newFileName);
File.Create(newPath);

fw = new StreamWriter(newPath);

int counter = 0;
int spaceAtEnd = 0;
string line;

// Read the file and display it line by line.
while ((line = f.ReadLine()) != null)
{
if (line.EndsWith(" "))
{
spaceAtEnd++;
line = line.Substring(0, line.Length - 1);
}
fw.WriteLine(line);
fw.Flush();
counter++;
}

MessageBox.Show("File Name : " + result);
MessageBox.Show("Total Space at end : " + spaceAtEnd.ToString());
f.Close();
fw.Close();
}
}

最佳答案

File.Create 本身返回一个流。

使用该流写入文件。您收到此错误的原因是 File.Create 返回的 Stream 已打开,您正在尝试再次打开该文件进行写入。

要么关闭 File.Create 返回的流,要么最好将该流用于文件写入或使用

Stream newFile = File.Create(newPath);
fw = new StreamWriter(newFile);

关于c# - 无法访问文件,因为它正在被另一个程序使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11739683/

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