2013-03-22 48 views
0

我正在創建小型FTP客戶端,並且遇到小問題,請你幫我整理一下。從ftp地址提取文本

所以我正在從文字女巫comboBox1.Text是可以說「/測試/ SQL /它/」 但用於創建新的目錄,我需要提取「它」和「/測試/ SQL /」 「它「作爲新的目錄名稱和」/ test/sql /「創建新文件夾的位置。

對於第二部分,我可以使用:

string s = comboBox1.Text; 
     s = s.Remove(s.LastIndexOf('/')); 
     s = s.Remove(s.LastIndexOf('/')); 
     s = s + "/"; 
     MessageBox.Show(s); 
     //result "/test/sql/" 

可是如何才能讓第一部分「它」的任何一個?

回答

1

試試這個,

string s = comboBox1.Text; 
string path_s = Path.GetFileName(Path.GetDirectoryName(path)); 

到GetDirectoryName內調用將返回的完整路徑,一邊用GetFileName外()調用將返回最後一個路徑組件 - 這將是該文件夾的名稱。

+0

謝謝工程不錯只是一個更正: 字符串s = comboBox1.Text;以字符串路徑= comboBox1.Text; – zee 2013-03-22 19:06:21

1

試試這個:

string path = "/test/sql/it/"; 
string[] directories = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); 
string lastDir = directories.Last(); 
+0

有點困難: directories.Last(); 錯誤'System.Array'沒有包含'Last'的定義,也沒有找到擴展方法'Last'接受'System.Array'類型的第一個參數(你是否缺少using指令或程序集參考?) – zee 2013-03-22 19:01:24

+0

添加'使用System.Linq;' – polybios 2013-03-22 19:04:03

+0

非常感謝您... – zee 2013-03-22 19:09:03

0

使用這個表達式:

.+(/.+/)$ 

這會給你/it/組1
如果你不想斜線,使用這個表達式來代替:

.+/(.+)/$ 
+0

類似這樣的: Match output = Regex.Match(comboBox_RemotePatch.Text,「。+(/.+/)$」); – zee 2013-03-22 19:03:49