我在窗口应用程序中读取了一个来自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);
我在做错了,请帮忙。
答案 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);
}