繁体   English   中英

是否可以在 c# 中写入文件大小不能被 4 整除的二进制文件?

[英]Is it possible in c# to write a binary file with a file size that is not divisible by 4?

我正在尝试使用 c# 创建一个 506 KB 的二进制文件(我用来修改游戏)。 但是,无论我尝试什么,文件大小总是可以被 4 整除(不幸的是 506 不是)。 例如,我得到的结果文件为 504 KB。 我已经得到它是 508 KB。 但是,我无法将其设为 506 KB。 有没有办法让你得到的文件大小不必被 4 整除? 这是我尝试过的示例(最终仍会生成大小为 504 KB 的文件):

int k = 1024 * 506; //because there are 1024 bytes in a KB and I want 506 KB` `

 BinaryWriter writer = new BinaryWriter(System.IO.File.OpenWrite("path"));
            
 for(int i = 0; i < k; i++)`
 {
   writer.Write(Convert.ToByte(false));
 }   

我对此的猜测是您已将文件写入具有 4kb 集群的磁盘:

在此处输入图像描述

顺便说一句, File.WriteAllBytes(path, new byte[506 * 1024])可能是一种将 518144 个零字节准确写入磁盘的更简洁和高效的方法,而不是将 false 逐个转换为字节。

我只是尝试将writer.close()添加到我的代码中,这就像一个魅力。 我得到了我需要的 506 KB 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM