随笔 - 89  文章 - 0  评论 - 2  阅读 - 11万 

我们在使用桌面软件的时候经常会使用到选择文件并打开和另存为等的窗口,这样方便了我们自由选择打开文件和保存文件的路径。 
注:下面说的这两个功能,只是返回文件路径。具体打开和保存功能还需要结合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);

  

 

posted on   我的梦想是开个小店  阅读(1313)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示