В 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;
В элементе у вас есть имя файла и путь к файлу.