Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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# 如何将数据写入循环中的文件_C# - Fatal编程技术网

C# 如何将数据写入循环中的文件

C# 如何将数据写入循环中的文件,c#,C#,我在一个拖缆上工作,它将从Fx3板上传输数据 我想将数据从Streamer写入PC内存(文件),将数据从Streamer写入文件时,数据正在写入文件 但是我想在第一个文件中再次到达一些no文件后进行写入n,因此任何人都可以帮助我解决这个问题 if (Save == true) //Check if save Button is marked { while (true) { const int sizeLimitInBytes = 360960*16;

我在一个拖缆上工作,它将从Fx3板上传输数据

我想将数据从
Streamer
写入
PC内存(文件),
将数据从Streamer写入文件时,数据正在写入文件 但是我想在第一个文件中再次到达一些no文件后进行写入
n
,因此任何人都可以帮助我解决这个问题

if (Save == true)   //Check if save Button is marked
{
    while (true)
    {
        const int sizeLimitInBytes = 360960*16;
        using (var fs = new FileStream("C:\\user\\mady\\desktop\\myData.txt", FileMode.Create, FileAccess.ReadWrite))
        {
            while (true)
            {
                fs.Write(xBufs[k], 0, xBufs[k].Length);
                index++;
                Offset += len;
                EndPoint.BeginDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k]);
                if (fs.Length >= sizeLimitInBytes)
                {
                    fs.Close();
                    using (var fs1 = new FileStream("C:\\user\\mady\\desktop\\myData1.txt", FileMode.Create, FileAccess.ReadWrite))  
                    {
                        while (true)
                        {
                            fs1.Write(xBufs[k], 0, xBufs[k].Length);
                            index++;
                            Offset += len;
                            EndPoint.BeginDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k]);
                            if (fs1.Length >= sizeLimitInBytes)
                            {
                                fs1.Close();
                                using (var fs2 = new FileStream("C:\\user\\mady\\desktop\\myData2.txt", FileMode.Create, FileAccess.ReadWrite))
                                {
                                    while (true)
                                    {
                                        fs2.Write(xBufs[k], 0, xBufs[k].Length);
                                        index++;
                                        Offset += len;
                                        EndPoint.BeginDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k]);
                                        if (fs2.Length >= sizeLimitInBytes)
                                        {
                                            fs2.Close();
                                            using (var fs3 = new FileStream("C:\\user\\mady\\desktop\\myData3.txt", FileMode.Create, FileAccess.ReadWrite))
                                            {
                                                while (true)
                                                {
                                                    fs3.Write(xBufs[k], 0, xBufs[k].Length);
                                                    index++;
                                                    Offset += len;
                                                     EndPoint.BeginDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k]);
                                                     if (fs3.Length >= sizeLimitInBytes)                                               
                                                     {
                                                         //using (var fs = new FileStream("C:\\user\\mady\\desktop\\myData3.txt", FileMode.Create, FileAccess.ReadWrite))
                                                         fs3.Close();
                                                         fs.Write(xBufs[k], 0, xBufs[k].Length);
                                                         index++;
                                                         Offset += len;
                                                         EndPoint.BeginDataXfer(ref cBufs[k], ref xBufs[k], ref len, ref oLaps[k]);
                                                     }
                                                }
                                            }
                                        }
                                    }
                                }
                            }                       
                        }
                    }
                }
            }
        } 
    }
}

你能用句号吗?这将有助于我理解你的问题。旁注:典型的箭头反模式:12关闭
}
嵌套3次的目的是什么?不管怎么说,它都会被困在内部循环中。这个问题将受益于一个简单的问题。从您的解释和代码示例中,我感觉在开始编码之前,对实际目标的分析还不够。为什么在(true)时使用多个嵌套的
?为什么要使用重复嵌套而不是递归或更平坦的迭代模式?这是否纯粹是一个写入数据的问题,而是在旧文件达到指定的文件限制时跳转到新文件?