Копирование файла в папку в окне приложения

Я прочитал 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);
}
Другие вопросы по тегам