Я извлекаю byte[] из системы SAP и пытаюсь декодировать массив обратно в формат исходного файла (pdf, text, jpg или doc). Однако после нескольких попыток при открытии вновь созданного временного файла содержимое файла представляет собой закодированные значения (я использую текстовый файл для тестирования).
Код, который я использую, возвращает путь к созданному объекту, и мой метод приведен ниже.
private string DecodeFromBytes(byte[] fileContents)
{
DocumentFilePath = System.IO.Path.GetTempFileName();
//FileStream tempFile = File.OpenWrite(DocumentFilePath);
string bytesString = Convert.ToBase64String(fileContents);
// Used for Checking.
// This is the exact same as the passed fileContents value.
byte[] convertedBytes = Convert.FromBase64String(bytesString);
MemoryStream ms = new MemoryStream(convertedBytes, 0, convertedBytes.Length);
ms.Write(convertedBytes, 0, convertedBytes.Length);
using (FileStream tempFile = new FileStream(DocumentFilePath, FileMode.Create, FileAccess.Write))
{
//byte[] tempBytes = new byte[ms.Length];
//tempFile.Write(convertedBytes, 0, convertedBytes.Length);
ms.WriteTo(tempFile);
}
//tempFile.Write(fileContents, 0, fileContents.Length);
//tempFile.Close();
return DocumentFilePath;
}
Сохраняемый закодированный текст также является неправильным; есть замыкающие A. Я предполагаю, как заполнение пустых байтов? Ниже показано, что возвращается и что должно возвращаться.
Закодированный текст
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gSW50ZWdlciBuZWMgb2Rpby4gUHJhZXNlbnQgbGliZXJvLiANClNlZCBjdXJzdXMgYW50ZSBkYXBpYnVzIGRpYW0uIFNlZCBuaXNpLiBOdWxsYSBxdWlzIHNlbSBhdCBuaWJoIA0KZWxlbWVudHVtIGltcGVyZGlldC4gRHVpcyBzYWdpdHRpcyBpcHN1bS4gUHJhZXNlbnQgbWF1cmlzLiANCkZ1c2NlIG5lYyB0ZWxsdXMgc2VkIGF1Z3VlIHNlbXBlciBwb3J0YS4gTWF1cmlzIG1hc3NhLiBWZXN0aWJ1bHVtIGxhY2luaWEgYXJjdSBlZ2V0IG51bGxhLiANCkNsYXNzIGFwdGVudCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgDQpwZXIgaW5jZXB0b3MgaGltZW5hZW9zLiBDdXJhYml0dXIgc29kYWxlcyBsaWd1bGEgaW4gbGliZXJvLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Что должен читать файл
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Целое без исключения. Настоящий либеро. Sed cursus ante dapibus диам. Сед ниси. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Презент Маурис. Fusce nec tellus sed augue semper porta. Маурис Масса. Vestibulum lacinia arcu eget nulla. Class aptent taciti socialsqu ad litora Torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.
Я уверен, что забыл шаг, я просто не знаю, где. Любая помощь/подсказки будут оценены.
Спасибо.
File.WriteAllBytes(DocumentFilePath, fileContents)
? - person Jon Skeet   schedule 02.10.2014File.WriteAllBytes(DocumentFilePath, fileContents)
, я все еще возвращаю то же самое, что и закодированный текст выше. - person Jake_TheCoder   schedule 02.10.2014code
'SSFC_BASE64_ENCODE'. Это объясняет погоню за хвостом. - person Jake_TheCoder   schedule 02.10.2014