2014-09-27 2 views
0

Я написал функцию копирования для копирования файлов из одного каталога в другой, но продолжаю получать исключение: «Формат данного пути не поддерживается». Вот мой код функции:Невозможно скопировать файлы из одного каталога в другой

private void Copy(string letter) 
{ 
    string sourceDir = (txtPath.ToString()); 
    string targetDir = letter; 
    foreach (var file in Directory.GetFiles(sourceDir)) 
     File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)), true); 
} 
+3

Что такое значение буквы и txtPath? – Mairaj

+0

На какой строке точно? Вы отлаживали свой код? –

+0

Вы можете использовать недопустимый символ (ы) на своем пути. Включает ли txtPath «:»? –

ответ

2

Чтобы обратиться к содержанию TextBox вы используете TextBox.Text свойство

private void Copy(string letter) 
{ 
    string sourceDir = txtPath.Text.Trim(); 
    string targetDir = letter; 

    // Check if source and target exists.... 
    if(Directory.Exists(sourceDir) && Directory.Exists(targetDir)) 
    { 
     foreach (var file in Directory.GetFiles(sourceDir)) 
      File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)), true); 
    } 
    else 
    { 
     MessageBox.Show("Source=" + sourceDir + " or Target: " + targetDir + " doesn't exist"): 
    } 
} 

Вызов метода ToString() непосредственно на экземпляре TextBox возвращает имя класса за которым следует свойство text (что-то вроде «System.Windows.Forms.TextBox, текст: содержимое текстового поля») и, очевидно, это неверный путь

Это неясно из ваших комментариев, каково содержание буквы переменной. Поэтому вы также должны быть уверены, что переменная targetDir указывает на действительный допустимый путь. (Неправильная длина буквы C D или E)

+0

ty v много .. я забыл некоторые основные вещи из-за истощения. Но эта функция только копирует файлы в эти директории без папок ... Любая помощь? – Bilal

+1

Если вы хотите скопировать также содержимое вложенных папок, вам понадобится рекурсивный вызов. Наверное, есть много примеров. Первый найденный - это http://www.rhyous.com/2011/07/25/how-to-copy-a-directory-recursively-in-cshar/, и это можно считать классическим, учитывая upvotes http: //stackoverflow.com/questions/58744/best-way-to-copy-the-entire-contents-of-a-directory-in-c-sharp – Steve

+0

еще раз thnx – Bilal

Смежные вопросы