Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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# 优雅地中止FileStream写入循环_C#_Filestream - Fatal编程技术网

C# 优雅地中止FileStream写入循环

C# 优雅地中止FileStream写入循环,c#,filestream,C#,Filestream,我有一个使用FileStream将数据写入文件的循环。 在手术中,我想中止手术。 如果我刷新并关闭它,磁盘上将有一个部分文件。有没有办法关闭文件流并将其从系统中删除?(在相同的操作中。我知道我可以刷新关闭,然后自己删除它)如果您需要修改文件 在你的情况下,这可能是过分的,但你可以使用。如果需要中止,只需回滚事务,您修改的文件将返回到事务开始前的状态(如果在事务开始前不存在,则文件将完全消失)。即使您没有显式回滚(例如,由于断电),这也会起作用 或者,您可以通过写入不同的文件来模拟事务,然后通过用

我有一个使用FileStream将数据写入文件的循环。 在手术中,我想中止手术。 如果我刷新并关闭它,磁盘上将有一个部分文件。有没有办法关闭文件流并将其从系统中删除?(在相同的操作中。我知道我可以刷新关闭,然后自己删除它)

如果您需要修改文件

在你的情况下,这可能是过分的,但你可以使用。如果需要中止,只需回滚事务,您修改的文件将返回到事务开始前的状态(如果在事务开始前不存在,则文件将完全消失)。即使您没有显式回滚(例如,由于断电),这也会起作用

或者,您可以通过写入不同的文件来模拟事务,然后通过用新文件替换旧文件来“提交”


否则(如果您只处理创建新文件,而不是修改现有文件)


在流关闭/释放后(如您所述),您可以删除
finally
块中的文件。

好吧,不用费心刷新。是的,只需删除文件。我想就是这样(使用finally块删除部分文件)我不想使用NTFS事务,因为我不知道这将在哪个操作系统和哪个HD上运行。。。。我想没有一个“聪明的方法”来做这件事。。。。