我们正在使用 File.WriteAllBytes 将数据写入磁盘。但是,如果在我们关闭文件的同时重新启动,Windows 会将 null 添加到文件中。这似乎发生在 Windows 7 上。因此,一旦我们返回文件,我们就会在文件中看到空值。有没有办法防止这种情况。 Windows 是否会在一定时间后关闭其内部句柄,是否可以强制立即关闭?
最佳答案
取决于你想要什么样的行为;您可以按照 0A0D 的建议将其放入 UPS 中;但除此之外,您还可以使用 Windows 的 Vista+ Transactional NTFS功能。这允许您以原子方式写入文件系统。所以在你的情况下; 没有会被写入而不是不正确的数据。它还不是 .NET Framework 的直接组成部分;但是可以在网上找到大量托管包装器。
有时没有数据比错误数据更好。当您的应用程序再次启动时;它可以看到文件丢失;它可以从中断的地方“继续”;取决于您的应用程序的作用。
关于c# - 文件关闭问题窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668059/