C# 獲取選擇文件信息
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[]類型的。
最後更新:2017-04-03 12:55:25