C# 使用文件夹浏览对话框选择文件并将其保存到定义的位置

C# 使用文件夹浏览对话框选择文件并将其保存到定义的位置,c#,winforms,folderbrowserdialog,C#,Winforms,Folderbrowserdialog,我已经为用户选择了一个文件夹,这样我的两个文件将被复制到该文件夹的代码。代码如下: string sourcePath = @"C:\Documents and Settings\akib\"; string fileName1 = @"untitled.jpg"; string fileName2 = @"Copyuntitled.jpg"; DialogResult result = folderBrowserDialog1.ShowDialog(); if (result == Dialo

我已经为用户选择了一个文件夹,这样我的两个文件将被复制到该文件夹的代码。代码如下:

string sourcePath = @"C:\Documents and Settings\akib\";
string fileName1 = @"untitled.jpg";
string fileName2 = @"Copyuntitled.jpg";
DialogResult result = folderBrowserDialog1.ShowDialog();
if (result == DialogResult.OK)
{
    var destinationFolderName = folderBrowserDialog1.SelectedPath;
    if (Directory.Exists(destinationFolderName))
    {
        File.Copy(sourcePath + "/" + fileName1, destinationFolderName
                  + "/" + fileName1);
        File.Copy(sourcePath + "/" + fileName2, destinationFolderName 
                  + "/" + fileName2);
    }
}

但现在我想把它颠倒过来。也就是说,如果用户在某个位置有两个文件,我想将其复制到
c:\programfiles\myfolder
。那么在这种情况下可以使用
FolderBrowseDialog
?如果是,如何使用?

FolderBrowseDialog可以以完全相同的方式获取用于读取或写入文件的文件夹。

为此,您需要使用OpenFileDialog类,并将Multiselect属性设置为true:

string destination = @"c:\programfiles\myfolder";
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
if (DialogResult.OK == ofd.ShowDialog()) {
    foreach (string file in ofd.FileNames)  {
        File.Copy(file, Path.Combine(destination, Path.GetFileName(file)));
    }
}

先生,我是如何写这个文件的。复制(sourcePath+“/”+fileName2,destinationFolderName+“/”+fileName2);可以写入而不是此文件。复制(文件,Path.Combine(目标,Path.GetFileName(文件));你的问题相当复杂。