Привет,
никогда не писал ничего на C#, но вот пришлось.
Суть - есть две кнопки. По клику на одну выбираем несколько файлов, по клику на вторую - что-то с ними делаем.
Вот выбор файлов -
private void selectFile_Click_1(object sender, EventArgs e)
{
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "Файлы персонализации УПЦ (*.e)|*.e";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Multiselect = true;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.Title = "Выберите файлы персонализации УПЦ";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
flowLayoutPanel1.Controls.Clear();
flowLayoutPanel2.Controls.Clear();
int i = 0;
int totalCards = 0;
Label[] labels = new Label[openFileDialog1.FileNames.Length];
Label[] cards = new Label[openFileDialog1.FileNames.Length];
foreach (String file in openFileDialog1.FileNames)
{
try
{
labels[i] = new Label() { Text = Path.GetFileNameWithoutExtension(file), AutoSize = true };
labels[i].Click += new System.EventHandler(lbsi_Click);
cards[i] = new Label() { Text = (File.ReadLines(file).Count()-2).ToString() + " " + GetDeclension((File.ReadLines(file).Count() - 2), "карта", "карты", "карт"), AutoSize = true };
flowLayoutPanel1.Controls.Add(labels[i]);
flowLayoutPanel2.Controls.Add(cards[i]);
totalCards = totalCards + (File.ReadLines(file).Count() - 2);
++i;
button1.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
toolStripStatusLabel1.Text = openFileDialog1.FileNames.Length.ToString() + " " + GetDeclension((openFileDialog1.FileNames.Length), "файл", "файла", "файлов") + ", " + totalCards.ToString() + " " + GetDeclension(totalCards, "карта", "карты", "карт");
statusStrip1.Refresh();
}
}
Нужно что-нибудь делать с этими файлами не сразу после их выбора, а по нажатию на кнопку "конвертировать". Первая мысль была - замкнуть openFileDialog1.FileNames, чтобы дернуть его из обработчика, но как-то объявить переменную вне метода не вышло.
Наверняка тут все очень просто, кто подскажет? Спасибо.