目标:
我正在尝试复制一个存储在变量中的文件..,然后将其粘贴到另一个指定的文件夹中。
我看过这里:https://stackoverflow.com/a/53731042/12129150 但这没有帮助,因为我在变量中有一条路径。
这是我尝试过的:
// File path attached
private string filePath = null;
private void button2_Click(object sender, EventArgs e)
{
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
openFileDialog.InitialDirectory = "c:\";
openFileDialog.Filter = "All Files (*.*)|*.*";
openFileDialog.FilterIndex = 1;
openFileDialog.RestoreDirectory = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
//Get the path of specified file
filePath = openFileDialog.FileName;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
File.Copy(filePath, @"C:UsersuserDesktop@filePath");
}
但这只是将其保存到桌面上作为@filePath
自行获取文件名
private void button1_Click(object sender, EventArgs e)
{
var fileName = Path.GetFileName(filePath);
var newPath = Path.Combine(@"C:UsersuserDesktop", fileName);
File.Copy(filePath, newPath);
}
File.Copy 的文档指出第二个参数是
目标文件的名称。这不能是目录或 现有文件。
因此,不能将文件夹名称作为第二个参数传递。 您需要合并原始文件名和目标文件夹,并将此值作为目标文件传递。
private void button1_Click(object sender, EventArgs e)
{
var originalfile = Path.GetFileName(filePath);
var destination = Path.Combine(@"C:UsersuserDesktop@filePath", originalfile);
File.Copy(filePath, destination);
}