【问题标题】:how to remove few first positions from binary file如何从二进制文件中删除几个第一个位置
【发布时间】:2023-03-12 13:25:01
【问题描述】:

我使用 HEX 编辑器发现对 .WAV 文件进行的加密会添加 16 个空 00 块。 我知道应该删除前 64 个位置,然后解密文件。 搜索该站点后,我找不到与我的情况相匹配的示例, 我只需要打开文件并将其写入另一个没有前 64 个位置的文件。 感谢您的帮助

【问题讨论】:

  • 嗯,所以您的问题会暗示 WAVE 数据未加密,而只是标头数据?你知道这个 WAVE 数据是什么格式的吗?据我说,这不是 WAVE 文件的最佳加密方式。标头块包含有关采样率、块的位大小等的详细信息,但它也取决于已使用的波形文件类型。如果跳过前 64 个字节的数据确实足够了,那么使用二进制读取器就足以跳过前 64 个字节,如下面解释的 Aik。

标签: c# file binary byte


【解决方案1】:

如果您使用 64 字节缓冲区来复制文件,则可以跳过第一个:

using(var originalFile = File.OpenRead("some file"))
using(var newFile = File.OpenWrite("some file"))
{

byte[] buffer = new byte[64];

    int readBytes= 0;
    int currentReaded = 0;
    do
    {
        currentReaded = originalFile.Read(buffer, 0, buffer.Length);
        readBytes += currentReaded; 

        if(readBytes > 64)
        {
            newFile.Write(buffer, 0, currentReaded);
        }

    } while (currentReaded == buffer.Length);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多