我正在试图弄清楚如何将一些文件附加到另一个文件字节中,这些文件的路径可以在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);
}
}