文件流创建或追加问题

本文关键字:追加 问题 创建 文件 | 更新日期: 2023-09-27 18:28:03

我的FileStreams有问题。我正在为我正在进行的FPGA项目编写一个C#串行接口,该接口接收一个数据包(包含16个字节),创建并将字节写入文件,然后附加到创建的文件中。

该程序没有抛出任何错误,但似乎没有通过创建文件,也没有向其中写入任何数据

有什么想法吗?有更好的方法打开或附加文件吗?

提前感谢,Michael

    private void SendReceivedDataToFile(int sendBytes)
    {
        if (saveFileCreated == false)
        {
            FileStream writeFileStream = new FileStream(tbSaveDirectory.Text, FileMode.Create);
            writeFileStream.Write(oldData, 0, sendBytes);
            writeFileStream.Flush();
            writeFileStream.Close();
            saveFileCreated = true;
            readByteCount = readByteCount + sendBytes;
        }
        else
        {
            using (var writeFilestream2 = new FileStream(tbSaveDirectory.Text, FileMode.Append))
            {
                writeFilestream2.Write(oldData, 0, sendBytes);
                writeFilestream2.Flush();
                writeFilestream2.Close();
                readByteCount = readByteCount + sendBytes;
            }
        }
        if (readByteCount == readFileSize)                     // all data has been recieved so close file.
        {
            saveFileCreated = false;
        }
    }

文件流创建或追加问题

FileMode.Append已经意味着"创建或追加",所以实际上您只需要ifelse {}部分。您也不需要调用Flush()Close()——处理流将为您完成此操作。不确定是否不写入数据。。。你试着追踪你的代码了吗?

所以首先我会把你的代码简化为

private void SendReceivedDataToFile(int sendBytes)
{
    using (var fs = new FileStream(tbSaveDirectory.Text, FileMode.Append))
        fs.Write(oldData, 0, sendBytes);
    readByteCount += sendBytes;
}

然后尝试弄清楚CCD_ 6中到底是什么。