C# 我想更改分配的字节数

C# 我想更改分配的字节数,c#,filestream,C#,Filestream,当保存二进制文件时。它(LastWriteTime)占用8字节。 我希望“LastWriteTime”仅使用4字节。 我该怎么办? 有办法吗 很抱歉,我的英语很差。…您无法缩小DateTime对象的表示形式而不丢失信息(即精度)。如果你不介意丢失信息,你只需要决定哪些信息对你最重要。如图所示,您可以截断底层数据类型(长)中的信息,只需获取所需的信息 如果您只需要毫秒精度,为什么不丢失最低有效位呢 Byte[] mtime = new Byte[4];

当保存二进制文件时。它(LastWriteTime)占用8字节。 我希望“LastWriteTime”仅使用4字节。 我该怎么办? 有办法吗


很抱歉,我的英语很差。…

您无法缩小DateTime对象的表示形式而不丢失信息(即精度)。如果你不介意丢失信息,你只需要决定哪些信息对你最重要。如图所示,您可以截断底层数据类型(长)中的信息,只需获取所需的信息

如果您只需要毫秒精度,为什么不丢失最低有效位呢

            Byte[] mtime = new Byte[4];
            mtime = BitConverter.GetBytes(root.LastWriteTime.ToBinary());
            fs.Write(mtime, 0, mtime.Length);

嗯,这是一个时间戳-它可能代表自1970年1月1日以来的毫秒数。它需要8个字节才能达到这么高的精度。有一些方法可以只表示日期,但需要专门的转换。也许你可以解释一下为什么要保存4个字节?对不起。在上图中,这不是16字节。它是8字节块。我犯了一个错误。我明白你说的话。我能再问你一个问题吗?该时间戳只能保存8字节?(默认值)谢谢您的帮助!
int timeStamp = (int)(DateTime.Now.Ticks >> 10) // lose smallest 10 bits