Wiem, jak kodować/dekodować prosty ciąg do/z base64.Zakoduj FileStream do base64 za pomocą C#
Ale jak to zrobić, jeśli dane zostały już zapisane do obiektu FileStream. Załóżmy, że mam tylko dostęp do obiektu FileStream, a nie do wcześniej zapisanych w nim oryginalnych danych. W jaki sposób mogę kodować FileStream do base64, zanim opróżnię plik FileStream do pliku.
Ofc Mogę po prostu otworzyć mój plik i zakodować/odkodować go po napisaniu FileStream do pliku, ale chciałbym zrobić to wszystko w jednym kroku bez wykonywania dwóch operacji na plikach jeden po drugim. Plik może być większy, a jego załadowanie, zakodowanie i zapisanie zajęłoby podwójnie dużo czasu, po tym, jak został właśnie zapisany na krótko.
Może ktoś z was zna lepsze rozwiązanie? Czy mogę przekonwertować obiekt FileStream na ciąg znaków, zakodować ciąg znaków, a następnie przekonwertować ciąg z powrotem na obiekt FileStream lub na przykład, co powinienem zrobić i jak będzie wyglądał taki kod?
nie jestem pewien, że całkowicie rozumiem pytanie, ale jest to możliwe, aby korzystać z wbudowanych -in klas, aby zapewnić strumień, który przekształci dane binarne na dane z bazy 64 lub z nich. Następnie możesz wstawić taki strumień między twoimi zapisami i strumieniem wyjściowym pliku (tak jak zwykle robi się to przy kompresji strumieni i szyfrowaniu strumieni). Przykład znajduje się tutaj: http://netpl.blogspot.co.uk/2011/05/builtin-base64-streaming.html –
Możliwy duplikat [Jak przekształcić strumień w bajt \ [\] w C#?] (http://stackoverflow.com/questions/1080442/how-to-convert-an-stream-into-a-byte-in-c) – Liam
Możliwy duplikat [Czy istnieje Base64Stream dla .NET? gdzie?] (http://stackoverflow.com/questions/2525533/is-there-a-base64stream-for-net-where) – xmedeko