2014-02-06 5 views
-1

Я добавляю файлы из разных каталогов, а затем сохраняю их в архиве. Однако я столкнулся с проблемой. Существует огромное количество строк в области видимости, и после окончания этого метода происходит массовое падение.Выберите несколько файлов из разных каталогов

Как я могу это решить? Я думал о сохранении добавленных файлов в списке.

if (sfd.ShowDialog() == DialogResult.OK) 
     { 
       string[] files = listBox2.Text.Split(',');// here 
      if (File.Exists(sfd.FileName)) 
      { 
       if (MessageBox.Show("Such file exist, rewrite?", "", 
        MessageBoxButtons.YesNo) == DialogResult.Yes) 
       { 
        File.Delete(sfd.FileName); 

        ZipArchive zip = ZipFile.Open(sfd.FileName, ZipArchiveMode.Create); 

        foreach (string file in files) 
        { 
         zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.NoCompression); 
        } 
        zip.Dispose(); 
        MessageBox.Show("File successfully created "); 
       } 

      } 

     } 
+2

'«массив струны в области видимости, если и после окончания этого объема массивного, это падение»' - Может ли вы перефразировать это? Трудно понять. Вы имеете в виду, что вы потеряли список имен файлов, хранящихся в 'string [] файлах?? –

ответ

1

Это проблема:

listBox2.Text.Split(','); 

Текст свойство ListBox обычно пустая строка.

Попробуйте зацикливание по пунктам ListBox вместо:

foreach (string file in listBox2.Items) { 

} 
+1

Очень верно. Заставьте вас задаться вопросом, как может быть «огромное количество строк», генерируемое из пустого. Вы пионер, отвечающий на такие невероятно неопределенные вопросы. С стрелами на спине. –

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