将具有不同扩展名的文件合并到另一个文件字节中

时间:2017-08-04 17:40:22

标签: c# file merge

我正在试图弄清楚如何将一些文件附加到另一个文件字节中,这些文件的路径可以在ListBox中找到。这些文件可以有不同的扩展名。例如,一个可以是文本文档,一个图片和一个可执行文件。因此,当您打开主文件时,它们都应该与主文件同时执行。我有一个服务器/客户端项目,我将主文件字节发送到服务器,他完成了自己的工作。

byte[] mainFileBytes = File.ReadAllBytes(MainFilePath);
int mainFileLength = mainFileBytes.Length;
byte[] mainFileLengthBuffer = BitConverter.GetBytes(mainFileLength);
Globals.GlobalBuffer = Methods.CombineBytes(mainFileLengthBuffer, mainFileBytes);
client.GetStream().Write(Globals.GlobalBuffer, 0, Globals.GlobalBuffer.Length);

这是我将主文件发送到服务器的方式。不知何故,我必须将这些文件附加到主文件中。

编辑:考虑将每个文件发送到服务器,但问题是我不知道如何区分它们。

发送代码:

var requestBytes = new byte[26];
var requestByteCount = client.GetStream().Read(requestBytes, 0, requestBytes.Length);

if (Encoding.Unicode.GetString(requestBytes, 0, requestByteCount).Contains("ATTACHEDFILES"))
{
    if (chMFBListBox.Items.Count > 0)
    {
        foreach (string file in chMFBListBox.Items)
        {
            var fileBytes = File.ReadAllBytes(file);
            var fileLength = fileBytes.Length;
            var fileLengthBuffer = BitConverter.GetBytes(fileLength);
            Globals.GlobalBuffer = Methods.CombineBytes(fileLengthBuffer, fileBytes);
            client.GetStream().Write(Globals.GlobalBuffer, 0, Globals.GlobalBuffer.Length);
        }
    }
    else
    {
        // Notifying the server there aren't attached files
        Globals.GlobalBuffer = Encoding.Unicode.GetBytes("NO");
        client.GetStream().Write(Globals.GlobalBuffer, 0, Globals.GlobalBuffer.Length);
    }
}

0 个答案:

没有答案