我们在使用桌面软件的时候经常会使用到选择文件并打开和另存为等的窗口,这样方便了我们自由选择打开文件和保存文件的路径。
注:下面说的这两个功能,只是返回文件路径。具体打开和保存功能还需要结合C#的IO流。
选择文件功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 代码示例: public void Open() { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Multiselect = true ; fileDialog.Title = "请选择文件" ; fileDialog.Filter = "所有文件(*xls*)|*.xls*" ; //设置要选择的文件的类型 Thread t = new Thread((ThreadStart)(() => { if (fileDialog.ShowDialog() == DialogResult.OK) { string file = fileDialog.FileName; //返回文件的完整路径 } })); t.SetApartmentState(ApartmentState.STA); t.Start(); t.Join(); } |
保存文件路径选择功能:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 代码如下: public string ShowSaveFileDialog( string base64Img) { string localFilePath = "" ; //string localFilePath, fileNameExt, newFileName, FilePath; SaveFileDialog sfd = new SaveFileDialog(); //设置文件类型,此处设置的是jpg图片类型。可以设置其他格式,如Excel:Excel表格(*.xls)|*.xls sfd.Filter = "JPG图片文件(*.jpg)|*.jpg" ; //设置默认文件类型显示顺序 sfd.FilterIndex = 1; //保存对话框是否记忆上次打开的目录 sfd.RestoreDirectory = true ; //点了保存按钮进入 Thread t = new Thread((ThreadStart)(() => { if (sfd.ShowDialog() == DialogResult.OK) { localFilePath = sfd.FileName.ToString(); //获得文件路径 string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf( "\\" ) + 1)+ ".jpg" ; //获取文件名,不带路径 //将base64图片保存到本地 //获取文件路径,不带文件名 //FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf("\\")); //给文件名前加上时间 //newFileName = DateTime.Now.ToString("yyyyMMdd") + fileNameExt; //在文件名里加字符 //saveFileDialog1.FileName.Insert(1,"dameng"); //System.IO.FileStream fs = (System.IO.FileStream)sfd.OpenFile();//输出文件 ////fs输出带文字或图片的文件,就看需求了 } })); t.SetApartmentState(ApartmentState.STA); t.Start(); t.Join(); return localFilePath; } |
string strbase64 = img.Substring(img.IndexOf(',') + 1);
strbase64 = strbase64.Trim('\0');
byte[] imageBytes = Convert.FromBase64String(strbase64);
//保存图片
System.IO.File.WriteAllBytes(localFilePath, imageBytes);
分类:
.net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)