2011-09-01 168 views
0
string[] klasorlistesi = Directory.GetFiles(path+"//notlar//"); 
foreach (string eleman in klasorlistesi) 
    listBox1.Items.Add(eleman); 

我從listBox中通過上面的代碼從數組中獲取數據。
BTW文件沒有擴展名。從目錄中獲取文件名

我的問題是:
我希望出現在文件中只"not"而不是"C:\Users\Documents\Visual Studio 2008\not"列表框裏面。

而且,我試圖像下面的代碼的事情,但它不工作:

System.IO.Path.GetFileName(@"C:\Users\Documents\Visual Studio 2008\not"); 

我怎麼能這樣做?

+0

沒有該目錄中? –

+2

「這不起作用」並不能很好地描述實際發生的事情。 –

+0

這叫做什麼? –

回答

0

您可以使用類似

listbox1.Items.Add(eleman.Substring(eleman.LastIndexOf('\\') + 1); 
+0

不完全 - 你會在那裏得到\:P – Carsten

2

嘗試將最後一行更改爲:

listBox1.Items.Add(new FileInfo(eleman).Name); 

應該做的伎倆。

你可以做的另一個選擇就是像這樣自己提取它,但看起來有點混亂。可能快一點,但在你的情況下,你不應該注意到。

listBox1.Items.Add(eleman.Substring(eleman.LastIndexOf('\\') + 1)); 
+0

我認爲這是比我的「更好的方式」,但它可能會很慢,因爲它從磁盤讀取所有文件信息... – ChrFin

+0

你的工作方式不會如你所願:) – Carsten

+0

CKoenig - 謹慎詳細說明? –

0

您是否嘗試過

string s = Path.GetFileNameWithoutExtension(@"C:\Users\Documents\Visual Studio 2008\not"); 

結果不是