2013-08-16 80 views

回答

14
string filename = System.IO.Path.GetFileName("/Images/She.jpg"); 
+0

你能告訴我如何刪除該文件。 –

+1

當然,您可以使用[System.IO.File.Delete](http://msdn.microsoft.com/zh-CN/library/system.io.file.delete.aspx)方法將其刪除。 – Zbigniew

+0

雖然,請確保'路徑'是正確的。 – Zbigniew

0

只要您的路徑中沒有太複雜的內容,例如,查詢文件名後的參數。

Path.GetFileName("/Images/She.jpg") 
3

如果你正在使用路徑,你應該使用其他答案。如果它只是一個簡單的字符串,您可以使用以下代碼:

string filePath = "/Images/She.jpg"; 
string fileName = filePath.Substring(filePath.LastIndexOf("/") + 1); 
+0

這是有幫助的。 –

+0

即使使用純字符串,您也應該使用'Path'類。如果給出的文件與當前目錄相關,如「She.jpg」,會發生什麼? – dlras2

0

我喜歡以前發佈的GetFileName回答。

或者,您可以使用IndexOf和Substring手動解析字符串。我已經包含了多個變量,所以很容易看到解析字符串的步驟。

var source = "/images/she.jpg"; 
var key = "/images/"; 
var target = source.IndexOf(key); 
var start = target + key.Length; 
var length = source.Length - start; 
var result = source.Substring(start, length); 
-1

那麼,你可以從字符串的末尾向後移動。

private string GetFileName(string path) 
    { 
     string filename = null; 

     for (int i = (path.Length - 1); i > -1; --i) 
     { 
      if (path[i].ToString() == "/") 
      { 
       for (int x = (i + 1); x < (path.Length); ++x) 
       { 
        filename += path[x]; 
       } 

       break; 
      } 
     } 

     return (filename); 
    } 

這從字符串的最後一個字符開始向後工作,直到遇到'/'。然後,它將'/'後面的所有字符加起來並將其返回給您。

+1

多麼複雜的方法。 – CesarGon

0

只是爲了好玩,你也可以分割字符串成一個陣列和陣列中獲得的最後一個元素...

string path = "/Images/She.jpg"; 
string[] arr = path.Split('/'); 
string filename = arr[arr.Length - 1]; 

,或者如果你喜歡一個襯墊

string path = "/Images/She.jpg"; 
string filename = path.Split('/').Last(); 

這將返回

She.jpg 
相關問題