文件流创建或追加问题
本文关键字:追加 问题 创建 文件 | 更新日期: 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
已经意味着"创建或追加",所以实际上您只需要if
的else {}
部分。您也不需要调用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中到底是什么。