asp.net Объединение файлов

#asp.net #wcf #file #rest #concatenation

#asp.net #wcf #файл #остальное #объединение

Вопрос:

В моей программе я разделил файл на несколько файлов и отправил его в службу WCF rest, которая затем объединила его обратно в один файл. После объединения размер файла превышает размер отправленного файла.

Ниже приведен код для объединения:

         string[] files = Directory.GetFiles(path, string.Concat(guid, "*"),SearchOption.TopDirectoryOnly);
        StreamReader fileReader;
        StreamWriter fileWriter = new StreamWriter(path   newGuid);
        for (Int64 count = 0; count < files.Length; count  )
        {
            fileReader = new StreamReader(string.Concat(path,guid, count));
            fileWriter.Write(fileReader.ReadToEnd());
        }
        fileWriter.Close();
  

Комментарии:

1. Вы делаете это, чтобы обойти проблему с размером сообщения WCF 64K? Зачем вам разделять файлы и воссоединять их? Кажется пустой тратой усилий.

Ответ №1:

Вы имеете дело только с текстовыми файлами, потому что оба StreamWriter и StreamReader предназначены для использования только для текстовых файлов, а не двоичных файлов.

Кроме того, эта строка fileWriter.Write(fileReader.); кажется неверной. Это должно быть что-то вроде

 fileWriter.Write(fileReader.ReadToEnd());
  

Конечно, если размер вашего файла слишком велик, вы должны выполнять чтение / запись частями или построчно.

Комментарии:

1. Нет. Это то, что я использовал. Пропустил этот код. Это дает мне файл, размер которого больше, чем у разделенных файлов.

2. @Ankit, почему бы тебе не просмотреть содержимое файла и не решить, что будет добавлено дополнительно? Вы даже можете объединить разделенные файлы вручную и использовать любой инструмент для разделения!