- private bool GetDocuContent(out byte[] Content, out string FileName, out string ExtensionName)
- {
- long MaxLength = 10485760; //10M以内
- Content = null;
- ExtensionName = string.Empty;
- FileName = string.Empty;
- OpenFileDialog vsOpenFileDialog = new OpenFileDialog();
- vsOpenFileDialog.InitialDirectory = "d:\\";
- vsOpenFileDialog.Filter = "All files (*.*)|*.*";
- vsOpenFileDialog.FilterIndex = 0;
- vsOpenFileDialog.Multiselect = false;
- try
- {
- if (vsOpenFileDialog.ShowDialog() == DialogResult.OK)
- {
- //Path.GetExtension方法:返回指定的路径字符串的扩展名
- ExtensionName = Path.GetExtension(vsOpenFileDialog.FileName);
- //Path.GetFileName方法:返回指定路径字符串的文件名和扩展名。
- FileName = Path.GetFileName(vsOpenFileDialog.FileName);
- FileInfo vsFileInfo = new FileInfo(vsOpenFileDialog.FileName);
- if (vsFileInfo.Length > MaxLength)
- {
- MessageBox.Show("文件超长!");
- return false;
- }
- //vsFileInfo.OpenRead Method:Creates a read-only FileStream.
- FileStream fileStream = vsFileInfo.OpenRead();
- if (fileStream.Length == 0)
- {
- MessageBox.Show("空文件!");
- return false;
- }
- Content = new byte[fileStream.Length];
- int Size = fileStream.Read(Content, 0, Convert.ToInt32(fileStream.Length));
- fileStream.Close();
- return true;
- }
- return false;
- }
- catch (Exception ex)
- {
- return false;
- }
- }
小注:
1、 C# Winform OpenFileDialog 控件
2、C# FileStream.Read Method
假如选择的文件1111.png,是跟踪内容显示:
ExtensionName = Path.GetExtension(vsOpenFileDialog.FileName)
FileName = Path.GetFileName(vsOpenFileDialog.FileName)
FileInfo vsFileInfo = new FileInfo(vsOpenFileDialog.FileName)
Content = new byte[fileStream.Length]
4、假如相对返回的byte[] Content加密的话,可以使用:Convert.ToBase64String(Content),该函数的返回值,依然是:byte[]类型的。