2013-01-09 33 views
1

嗨,我是C#編程新手。請告訴我如何重新顯示完整路徑,但在代碼中只使用file.Name,因爲我只想在列表框中輸入文件名不完整路徑如何在C#中使用文件信息去除完整路徑#

我的代碼..

listBox1.DataSource = GetFolder("..\\video\\"); 

private static List<string> GetFolder(string folder) 
{ 
    List<string> FileList = new List<string>(); 

    var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                SearchOption.AllDirectories) 
    foreach (FileInfo file in allFiles) 
    { 
     FileList.Add(file.FullName);    
    }  

    return FileList; 
} 
+0

你也需要文件夾和文件 – Arshad

回答

1
FileInfo(path).Directory.FullPath 

你的代碼的實際問題是缺少分號此行

var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                SearchOption.AllDirectories) 

應該

var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                SearchOption.AllDirectories); 
+0

請至少給出幾句話總結。 – mtk

+0

恐怕缺少分號是原始問題編輯的結果 –

0
FileList.Add(file.FullName); 

請更改此行像下面

FileList.Add(file.Name); 
1

如果我得到你的權利,你想要的FULLPATH爲值,但只顯示文件名。要做到這一點,你可以使用含有這兩個值的FileInfo的List,並告訴列表框,其成員是值和一個應該顯示:

this.listBox1.DisplayMember = "Name"; 
this.listBox1.ValueMember = "FullName"; 
listBox1.DataSource = GetFolder("..\\video\\"); 

Player.URL = Convert.ToString(listBox1.SelectedValue); // Instead of SelectedItem 

private static List<FileInfo> GetFolder(string folder) 
{ 
    List<FileInfo> fileList = new List<FileInfo>(); 

    foreach (FileInfo file in new DirectoryInfo(folder).GetFiles("*.mpg", SearchOption.AllDirectories)) 
    { 
     fileList.Add(file); 
    }  

    return fileList; 
} 
+0

感謝您的幫助Stephan,但我的問題沒有解決,因爲當我使用您的代碼時,它要求(;)在線var allFiles和之後如下錯誤:錯誤無法找到類型或名稱空間名稱'var'(您是否缺少使用指令或程序集引用?)和錯誤2 \t foreach語句無法對變量輸入'var'是因爲'var'不包含'GetEnumerator'的公共定義...請幫助它的緊急! – user1960368

+0

查看我的更新回答 –

+0

現在代碼可以正常工作,但在調試時顯示參數異常是未發佈的:Complex DataBinding接受IList或IListSource作爲數據源。在線listBox1.DataSource = GetFolder(「.. \\ video \\」); – user1960368

0
listBox1.DataSource = GetFolder("..\\video\\"); 

    private static List<string> GetFolder(string folder) 
    { 
     List<string> FileList = new List<string>(); 

     var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
               SearchOption.AllDirectories) 
     foreach (FileInfo file in allFiles) 
     { 
       FileList.Add(file.Name);    
     }  

     return FileList; 
    } 
相關問題