2015-05-14 4 views
0

У меня есть форма с кнопкой добавления. При щелчке пользователь выбирает файл или файлы из диалогового окна.C# save mulitple имена файлов из OpenFileDialog

Моя цель:

Получить имена всех файлов, которые пользователь выбирает (из любого каталога их файла (ов) в), скопировать эти файлы в указанной папке, что пользователь не выберите с помощью File.Copy (я жестко программирую путь к файлу и имя файла).

Мой Выпуск:

Если пользователь выбирает только один, это работает отлично. Например:

string name = System.IO.Path.GetFileName(sfd.FileName);

Это захватывает файл. Затем:

  DialogResult dialogResult = MessageBox.Show("Is this published?", "", MessageBoxButtons.YesNo); 
      if (dialogResult == DialogResult.Yes) 
      { 
       Directory.CreateDirectory("c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\Published"); 
       File.Copy(sfd.FileName, "c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\Published\\" + name); 
      } 
      else if (dialogResult == DialogResult.No) 
      { 
       Directory.CreateDirectory("c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\NonPublished"); 
       File.Copy(sfd.FileName, "c:\\NewTest\\" + txtAcronym.Text + "\\" + txtMajor.Text + "." + txtMinor.Text + "\\NonPublished\\" + name); 
      } 

Я спрашиваю у пользователя, опубликован ли документ. На основе ответа он создаст каталог и поместит файл в этот каталог.

Можно ли закодировать несколько имен файлов в openFileDialog и поместить их все в папку, а не только одну?

+1

Duplicate: http://stackoverflow.com/questions/23842396/openfiledialog-multiselect –

ответ

2

Установите значение Multiselect равным true.

myFileDialog.Multiselect = true; 

Когда пользователь принимает выбор, вы можете получить их с FileNames собственности. Он возвращает строку []. Обратите внимание на разницу с FileName, которая возвращает строка. Вы можете использовать for или foreach, чтобы получить все результаты.

foreach (string file in myFileDialog.FileNames) 
{ 
    //do work 
} 
Смежные вопросы