2016-05-13 1 views
0

Я попытался добавить Driverinfo в listview, но получить ошибку.Выбросы исключений не могут конвертировать из 'System.IO.DriveInfo' в 'string'

Вот мой код, что я пытался

using System.IO; 
protected void Page_Load(object sender, EventArgs e) 
    { 
     foreach(DriveInfo di in DriveInfo.GetDrives()) 
     { 
      lstdrive.Items.Add(di); 
     } 
    } 

и ошибка

ошибка Аргумент 1: не удается преобразовать из 'System.IO.DriveInfo' в 'строка'

+1

Показать все соответствующий код, например где вы определяете и назначаете 'lstdrive'. –

ответ

2

Конвертация DriveInfo di в строку

using System.IO; 
protected void Page_Load(object sender, EventArgs e) 
    { 
     foreach(DriveInfo di in DriveInfo.GetDrives()) 
     { 
      lstdrive.Items.Add(di.ToString()); 
     } 
    } 
+0

DriveInfo drive = (DriveInfo) lstdrive.SelectedItem; foreach (DriveInfo diInfo in drive.RootDirectory.GetDirectories()) { lstfolder.Items.Add (diInfo.ToString()); } –

+0

Что вы хотите достичь @kumbhanibhavesh? – Mostafiz

1

Вы не указали, где объявлено lstdrive, но на основании ошибки я предполагаю, что это List<string>. Таким образом, вы не можете добавить экземпляр System.IO.DriveInfo к нему, как вы пытаетесь сделать с di. Либо преобразуйте di в строку через di.ToString(), либо измените свою lstdrive декларацию на List<System.IO.DriveInfo>.

1

Я буду считать lstdrive является ListBox

Вы хотите, чтобы выбрать свойство ди объекта, который вы хотите отобразить в списке. Предположительно это будет Название.

protected void Page_Load(object sender, EventArgs e) 
    { 
     foreach(DriveInfo di in DriveInfo.GetDrives()) 
     { 
      lstdrive.Items.Add(di.Name); 
     } 
    } 

Обратите внимание, что вы можете также использовать di.ToString() потому что DriveInfo класс переопределяет метод ToString() испускать Name свойство, как показывает Mostafizur Рахман в своем ответе.

Следующая ссылка имеет ссылку свойств, доступных для объекта DriveInfo. https://msdn.microsoft.com/en-us/library/system.io.driveinfo_properties(v=vs.110).aspx

Если вам нужны другие примеры того, как использовать класс DriveInfo см https://msdn.microsoft.com/en-us/library/system.io.driveinfo.getdrives(v=vs.110).aspx

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