文件复制到窗口应用程序中的文件夹

时间:2013-07-03 08:23:26

标签: c# winforms file-upload file-copying

我在窗口应用程序中读取了一个来自filedialog的csv文件。

不,我希望将特定文件复制到文件夹,这会产生问题。

代码如下

OpenFileDialog op1 = new OpenFileDialog();
op1.Multiselect = false;
op1.ShowDialog();
op1.Filter = "allfiles|*.csv";
txtSearchName.Text = op1.FileName;


File.Copy(op1.FileName, "C:\\Users\\skysoft\\Documents\visual studio 2010\\Projects\\MailSend\\MailSend\\CsvFile\\" + op1.FileName);

我在做错了,请帮忙。

3 个答案:

答案 0 :(得分:2)

检查字符串,在visual studio之前缺少反斜杠\

File.Copy(op1.FileName, "C:\\Users\\skysoft\\Documents\visual studio 2010\\Projects\\MailSend\\MailSend\\CsvFile\\" + op1.FileName);

答案 1 :(得分:2)

我建议总是在路径字符串之前使用@符号来避免像你这样的问题: 在“visual studio 2010”之前你还需要1个反斜杠。例如:

@"C:\Users\skysoft\Documents\visual studio 2010\Projects\MailSend\MailSend\CsvFile\"

另外,您正在提供方法

"C:\\Users\\skysoft\\Documents\visual studio 2010\\Projects\\MailSend\\MailSend\\CsvFile\\" + op1.FileName

转换为

"C:\\Users\\skysoft\\Documents\visual studio 2010\\Projects\\MailSend\\MailSend\\CsvFile\\" + "c:\\...."

你应该按照键盘P说的那样Path.GetFileName(op1.FileName)op1.FileName.Substring(op1.LastIndexOf('\\'))

答案 2 :(得分:1)

op1.FileName包含完整路径,而您只需要将文件名附加到目标目录。

using(OpenFileDialog op1 = new OpenFileDialog())
{
    op1.Multiselect = false;        
    op1.Filter = "allfiles|*.csv";
    op1.ShowDialog();
    txtSearchName.Text = op1.FileName;

    string dest = Path.Combine(@"C:\Users\skysoft\Documents\visual studio 2010\Projects\MailSend\MailSend\CsvFile\", Path.GetFileName(op1.FileName));
    File.Copy(op1.FileName, dest);
}
相关问题