Копирование файла в папку в окне приложения
Я прочитал 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 ответа
Решение
Я бы рекомендовал всегда использовать знак @ перед строками пути, чтобы избежать проблем, подобных вашей: вам понадобится еще 1 обратная косая черта перед "Visual Studio 2010". например:
@"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:\\...."
ты должен сделать Path.GetFileName(op1.FileName)
как сказала клавиатура op1.FileName.Substring(op1.LastIndexOf('\\'))
Проверьте строку, есть пропущенная обратная косая черта \ перед Visual Studio
File.Copy(op1.FileName, "C:\\Users\\skysoft\\Documents\visual studio 2010\\Projects\\MailSend\\MailSend\\CsvFile\\" + op1.FileName);
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);
}