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[]类型的。
以上就是c# 获取选择文件信息的内容。
