gpt4 book ai didi

C# 异常。文件正在被另一个进程使用

转载 作者:太空狗 更新时间:2023-10-29 19:57:06 26 4
gpt4 key购买 nike

我在玩 C# 时遇到了一个问题。当我尝试创建一个新文件时,程序中断并提示该文件正在被另一个进程使用。这可能是我忽略的一些愚蠢的事情,但我想不通!

这是我的代码:

using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace myNameSpace
{
public partial class MainWindow : Form
{
public static string folderPath = @"fullpath";
public MainWindow()
{
InitializeComponent();
StoredTb.Text = folderPath;
String[] files = Directory.GetFiles(folderPath);
foreach (string file in files)
myDropDown.Items.Add(Path.GetFileNameWithoutExtension(file));
}

private void myDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
this.BeginInvoke(new MethodInvoker(myDropDown_invokedMethod));
}

private void myDropDown_invokedMethod()
{
string fullpath = MainWindow.folderPath + myDropDown.SelectedText + ".txt";
StreamReader sr = new StreamReader(fullpath);
NameTb.Text = myDropDown.SelectedText;
DescriptionTb.Text = sr.ReadToEnd();
sr.Close();
}

private void SaveBtn_Click(object sender, EventArgs e)
{
File.Create(NameTb.Text + ".txt");
TextWriter tw = new StreamWriter(NameTb.Text + ".txt"); /* this is where the problem occurs */
tw.WriteLine("The very first line!");
tw.Close();
}
}
}

抱歉代码片段很长,但由于我不确定问题出在哪里,所以我不得不包含几乎所有内容。

最佳答案

您的问题是 File.Create 将打开一个 stream 允许您对文件执行您喜欢的操作:

http://msdn.microsoft.com/en-us/library/d62kzs03.aspx

A FileStream that provides read/write access to the file specified in path.

因此,从技术上讲,它已经投入使用。

只需完全删除 File.Create 即可。如果文件不存在,StreamWriter 将处理创建文件。

此外,投资于使用 结构来正确处理您的文件连接。将来有助于避免这种情况。

关于C# 异常。文件正在被另一个进程使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18957309/

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