#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, почему бы тебе не просмотреть содержимое файла и не решить, что будет добавлено дополнительно? Вы даже можете объединить разделенные файлы вручную и использовать любой инструмент для разделения!