【问题标题】:saveFileDialog create new folder and save inside itsaveFileDialog 创建新文件夹并保存在其中
【发布时间】:2014-03-12 01:30:32
【问题描述】:

我想在我使用 saveFileDialog 的应用程序中创建备份数据,这样我就可以将备份文件放在我想要的任何位置(Dekstop、驱动器 D 等)

我的备份文件将是数据库、图像、视频,所以我想将它们放在一个文件夹中会更容易,比如说它是“myBackup”文件夹(使用 C# 自动生成) 所以如果用户想在 Dekstop 中保存所有的备份数据将在 ~C:\Users\Maju\Desktop\myBackup~

我已经成功生成文件夹,但我的文件不会保存在里面

mySaveFileDialog.FileName = "Backup Database " + dateTimeNow;

if (mySaveFileDialog.ShowDialog() == DialogResult.OK)
{
    string fileAsal = System.IO.Path.Combine(Global.myDatabaseLocation, "data.mdb");

    FileInfo fi = new FileInfo(mySaveFileDialog.FileName);
    string nameFolder = "myBackup";
    System.IO.Directory.CreateDirectory(@fi.DirectoryName + "\\" + nameFolder);

    string path = System.IO.Path.Combine (fi.DirectoryName, "\\" + nameFolder);
    string pathDestination = System.IO.Path.Combine(path, mySaveFileDialog.FileName);
    System.IO.File.Copy(fileAsal, pathDestination, true);
}

【问题讨论】:

    标签: c# savefiledialog


    【解决方案1】:
    1. 使用FolderBrowserDialog不是更方便吗?
    2. mySaveFileDialog.FileName 已经包含文件的路径,所以你需要写

      string pathDestination = System.IO.Path.Combine(path, System.IO.Path.GetFileName(mySaveFileDialog.FileName));
      

    【讨论】:

    • 1.你是对的,我认为使用 folderBrowseDialog 更容易......谢谢你的建议
    • 很高兴为您提供帮助)如果是,请将答案标记为正确
    • 2.我尝试修改脚本,但它不起作用..当我 messageBox pathDestination 它只是显示(namefolder 和 mySaveFileDialog.nameFile)...似乎路径丢失了(C:\Users\Maju\Desktop)
    • 不要使用 FileInfo。更改代码以使用 var outDirName = Path.Combine(Path.GetDirectoryName(mySaveDialog.FileName, nameFolder); Directory.Create(outDirName); File.Copy(fileAsal, Path.Combine(outDirName, Path.GetFileName(mySaveDialog.FileName) , 真);
    • 该 scipt 是否在框架 4.0 中工作,因为我遇到很多错误,例如重载方法 GetDirectoryName 不能接受 2 个参数,系统 IO 不包含“创建”的定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多