파일이 너무 크면 오류가 발생하므로, 이럴때는 파일을 분할하여 encoding / decoding 하는 전략을 취해야 할듯함.
private void btnEncode_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtInFile.Text))
{
FileStream fs = new FileStream(txtInFile.Text,
FileMode.Open,
FileAccess.Read);
byte[] filebytes = new byte[fs.Length];
fs.Read(filebytes, 0, Convert.ToInt32(fs.Length));
string encodedData =
Convert.ToBase64String(filebytes,
Base64FormattingOptions.InsertLineBreaks);
txtEncoded.Text = encodedData;
}
}
private void btnDecode_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtOutFile.Text))
{
byte[] filebytes = Convert.FromBase64String(txtEncoded.Text);
FileStream fs = new FileStream(txtOutFile.Text,
FileMode.CreateNew,
FileAccess.Write,
FileShare.None);
fs.Write(filebytes, 0, filebytes.Length);
fs.Close();
}
}
다른 예제
// The first method serializes a file on disk and returns the base64 string representation.
public static string Serialize(string fileName)
{
using (FileStream reader =new FileStream(fileName, FileMode.Open))
{
byte[] buffer =newbyte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
return Convert.ToBase64String(buffer);
}
}
// The next deserializes a base64 string and writes it to the disk.
public static void DeSerialize(string fileName, string serializedFile)
{
using (System.IO.FileStream reader = System.IO.File.Create(fileName))
{
byte[] buffer = Convert.FromBase64String(serializedFile);
reader.Write(buffer, 0, buffer.Length);
}
}




thanks for sharing