В C# как я могу получить имена файлов из checkListBox и переместить файлы?

В C# мне нужно знать, как я могу использовать имена элементов в checkListBox в качестве пути к файлу, чтобы пользователь мог выбрать имена файлов, затем нажмите кнопку, которая переместит эти файлы в другое место на ПК. Я уже знаю, как заставить файлы появляться в checkListBox но я не знаю, как определить пути к файлам в checkListBox поэтому пользователь может перемещать выбранные файлы, перечисленные в checkListBox,

Если это помогает, это лучший способ сказать это. Я хочу получить перечисленные файлы в списке и что-то с ними сделать.

void sendbtn_Click(object sender, EventArgs e)
        {
            string destinationFolder = gamedir.Text;
            string[] files = Directory.GetFiles(checkListView1.SelectedItems);
            foreach(var file in files)
            {
                string destinationPath = Path.Combine(destinationFolder, file);
                File.Copy(file.Fullname, destinationPath);
            }
        }

2 ответа

Ты можешь использовать System.IO.Directory

  • Список каталогов:

    Directory.GetDirectories

  • Список файлов в каталоге

    Directory.GetFiles("Path");

  • Полный путь к файлу:

    System.IO.Path.GetFileName

  • Переместить файл

    Directory.Move

Создайте структуру, которая содержит путь к файлу и, возможно, имя файла для сокращения элементов в ComboBox:

struct ComboItem {
    public string FileName { get; set; }
    public string FilePath { get; set; }

    public override string ToString() {
        return FileName;
    }
}

Переопределение ToString() делает волшебство - в ComboBox вы увидите только имена файлов. Заполните ComboBox следующим образом:

void FillCombo() {
    var startPath = @"your path";
    comboBox1.Items.Clear();
    foreach (var file in Directory.GetFiles(startPath)) {
        var item = new ComboItem {
            FilePath = file,
            FileName = Path.GetFileName(file)
        };
        comboBox1.Items.Add(item);
    }
}

И чем по ходу действия получить выделенный предмет:

var item = (ComboItem)comboBox1.SelectedItem;

В элементе у вас есть имя файла и путь к файлу.

Другие вопросы по тегам