Member 13976609 Ответов: 1

Как сделать имя элемента из списка в качестве имени файла?


Уважаемые Эксперты,

Пожалуйста, помогите мне решить проблему в Visual Studio #C.
Я создаю утилиту для переименования имен нескольких файлов.
Основная идея = пользователь открывает папку с файлами и выбирает необходимые файлы для переименования в списке.
Выбор может быть осуществлен путем поиска по специальным словам в названиях предметов (маски "MD").
Я завершил работу по фильтрации имен файлов и изменению их имен в списке. Но моя проблема - я не могу скопировать имена элементов и сохранить их как имена файлов в папке.
Вы когда-нибудь наблюдали такую проблему?
Пожалуйста, помогите мне в решении.

Что я уже пробовал:

public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
           if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {

                listBox1.Items.Clear();

                string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
                string[] dirs = Directory.GetDirectories(folderBrowserDialog1.SelectedPath);
                SelectedPathText.Text = folderBrowserDialog1.SelectedPath;

                foreach (string file in files)
                {
                    listBox1.Items.Add(Path.GetFileName(file));
                }
                foreach (string dir in dirs)
                {
                    listBox1.Items.Add(Path.GetFileName(dir));
                    SelectedPathText.Text = Path.GetFileName(dir);
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            DialogResult result = MessageBox.Show("Are you sure ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (result == DialogResult.Yes)
            {
                timer1.Enabled = true;

                try
                {
                                
                    if (checkBox1.Checked)
                    {
                        int SelectedItem = listBox1.SelectedIndex;
                        listBox1.Items.RemoveAt(SelectedItem);
                        listBox1.Items.Insert(SelectedItem, (textBox_rig.Text + ("_" + (textBox_field.Text + ("_" + (textBox_pad.Text + ("_" + (textBox_well.Text + ("_" + (comboBox1.Text  +("_"   +("_"+ (comboBox2.Text + ("_" + ("MD"+ ("_"+ (textBox_start.Text + ("-" + (textBox_end.Text + (".PDF"))))))))))))))))))));
                        
                    }

                }
                catch
                {
                    Application.DoEvents();
                }

               
            }
        }

CHill60

Здесь нет кода, который пытается переименовать какие - либо файлы. Что произошло, когда вы попытались сохранить файл в папке?
Кроме того, вы "проглотили" любые ошибки, которые могут быть выброшены. Избавьтесь от этой попытки-поймайте или, по крайней мере, войдите в журнал или покажите сообщение об ошибке.

Вы должны использовать разумные имена для элементов управления и т. д. - Мы понятия не имеем, что означает checkBox1 и для чего предназначена button1. Почему вы используете таймер?

1 Ответов

Рейтинг:
0

Gerry Schmitz

"Рекомендуемый" подход заключается в копировании при переименовании в новую (пустую) папку.

Когда вы уверены, что все в порядке, тогда "сливайтесь". Посмотрите, как это делают "профи" :

IrfanView - официальная Домашняя страница - один из самых популярных телезрителей во всем мире[^]