Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.IO.IOException正在创建文件_C#_Windows_Winforms_File Writing - Fatal编程技术网

C# System.IO.IOException正在创建文件

C# System.IO.IOException正在创建文件,c#,windows,winforms,file-writing,C#,Windows,Winforms,File Writing,如果在新创建的文件中写入内容,则会出现错误 这是我的代码: private void ButtonClick(object sender, EventArgs e) { Button b = (Button)sender; string inputKey = b.Text; for (int i = 0; i < tunes.Length; i++) {

如果在新创建的文件中写入内容,则会出现错误

这是我的代码:

private void ButtonClick(object sender, EventArgs e)
    {                    
        Button b = (Button)sender;
        string inputKey = b.Text;

        for (int i = 0; i < tunes.Length; i++) 
        {
            if (b.Text == tun[i].TuneName)
            {
                Console.Beep(tun[i].Frequency, 200);
                Input.Items.Add(b.Text);
                Output.Items.Add(tun[i].TuneName);
                if (startButtonPressed == true)
                {
                    filename2 = musicFileName + ".csv";

                    File.WriteAllText(filename2, tun[i].TuneName);
                    RecordList.Items.Add(tun[i].TuneName);
                }
            }
        }           
    }
private void按钮单击(对象发送方,事件参数e)
{                    
按钮b=(按钮)发送器;
字符串inputKey=b.文本;
for(int i=0;i
错误出现在第行:File.WriteAllText()。。。
它说该文件不能使用,因为它被另一个进程使用,但是我没有打开任何文件。

您需要确保变量
filename2
包含一个有效路径,如
C:\temp\myfile
,而不仅仅是
myfile
。此外,如果无法访问该位置,您可能需要以提升的权限运行visual studio

您也可以使用streamwriter

using (StreamWriter writer =new StreamWriter(musicFileName + ".csv";))
    {
        writer.Write(tun[i].TuneName);

    }

我会使用由
File.Create()
生成的Filestream,但我会在using语句中进行循环,这样您就可以确保在最后释放所有的资源(这就是为什么您使用
using


您实际遇到的问题是,您从未关闭过文件。你应该抬头看看。它只能用于实现接口的类。然后,它将使用
块在
末尾调用
disponse()
,所有资源都将被释放,例如文件将被关闭。

它是否在Excel或其他编辑器中打开?您的musicFileName是否包含路径?使用Path类创建正确的路径、文件名和扩展名。您尚未定义
musicFileName
;它是什么?如果它是全局的,那么应用程序中的任何东西都可以打开它。我已经用另一种形式定义了musicFileName,并将值赋给了Form1,如果您能多解释一下您的变量,那就太好了,尤其是如果您使用自创建的类型,并且不显示它们的话。如果您删除不必要的代码,例如Console.Beep(),这显然与您的问题无关,这也会使您的代码更容易理解。请尝试创建一个新文件,并确保您拥有对该文件的写入权限。也许重新启动计算机以确保没有进程绑定到其中?好吧,对于您发布的代码来说,这似乎不是一个问题。您是否在代码中的其他位置打开该文件,从而使其保持打开状态。你是在第一次迭代还是第二次迭代时发现这个错误的?我在另一个表单中创建了这个文件,我给了另一个表单名称的值,然后我关闭了我创建的表单。
        using (FileStream fs = File.Create(Path.Combine(musicFileName, ".csv")))
        {
            foreach (tun in tunes)
            {
                fs.Write(tun.TuneName);
            }
        }