2013-03-22 50 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