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

选择文件功能

 

代码示例:
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(); }

  保存文件路径选择功能:

 

 

代码如下:
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图片保存到本地

                                           string strbase64 = img.Substring(img.IndexOf(',') + 1);
                                           strbase64 = strbase64.Trim('\0');
                                           byte[] imageBytes = Convert.FromBase64String(strbase64);
                                          //保存图片
                                           System.IO.File.WriteAllBytes(localFilePath, imageBytes);

                    //获取文件路径,不带文件名 
                    //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;
        }

  

 

posted on 2022-03-03 14:05  我的梦想是开个小店  阅读(1177)  评论(0编辑  收藏  举报