本帖最后由 幻想领域 于 2012-10-29 12:03 编辑
早上逛论坛的时候,看到这么一个帖http://topic.csdn.net/u/20100201/17/958c272f-2ab7-46c2-9592-afef1ec0ea28.html
大家提到用path、split、对话框SafeFileName等方法。
我中午花了点时间做了一个小案例,方便大家参考学习,欢迎一起参加讨论。
主要涉及获取文件名、目录、扩展名,以及两个字符合并为路径,CSDN的关于获取指定层目录的一个问题
http://topic.csdn.net/u/20100201/17/958c272f-2ab7-46c2-9592-afef1ec0ea28.html
主要运用的方法:
1、GetExtension:获取指定路径字符串的扩展名
2、GetPathRoot:获取指定路径字符串的根目录
3、GetFileName:获取指定字符串的文件名和扩展名
4、GetFileNameWithoutExtension:返回不具有扩展名的指定路径字符串的文件名
5、GetDirectoryName:获取指定路径字符串的目录信息
5、Combine:合并两个路径字符串
下面部分代码(完整代码请下载附件):- private void btnGetFullFileName_Click(object sender, EventArgs e)
- {
- string path = cboPath.Text;
- string fileName = txtFileName.Text;
- //不使用Combine的解法
- //if (path.EndsWith(@"\"))
- //{
- // label3.Text = path + fileName;
- //}
- //else
- //{
- // label3.Text = path + "\\" + fileName;
- //}
- //Combine:合并两个路径字符串
- label9.Text = Path.Combine(path, fileName);
- }
- private void btnParentPath_Click(object sender, EventArgs e)
- {
- DirectoryInfo di = new DirectoryInfo(cboPath.Text);
- if (di.Parent != null)
- {
- label9.Text = di.Parent.FullName;
- }
- else
- {
- label9.Text = "已经是根目录了";
- }
- //不使用Parent的解法
- //string path = cboPath.Text;
- //if (path.EndsWith(@"\"))
- //{
- // path = path.Substring(0, path.Length - 1);
- // label3.Text = path.Substring(0, path.LastIndexOf(@"\") + 1);
- //}
- //else
- //{
- // label3.Text = path.Substring(0, path.LastIndexOf(@"\") + 1);
- //}
- }
- private void button1_Click(object sender, EventArgs e)
- {
- string str = @"C:\Documents and Settings\ty\桌面\工程测试\tttttttt\kkk\vv.txt";
- //通过"\\"分割字符串后,取长度-6,即从后往前数的第六项,应文件名占用了一项,第六项实际是第五层目录
- label11.Text = str.Split('\\')[str.Split('\\').Length - 6];
- }
复制代码 运行结果如下
代码中有任何问题,请指出,同时欢迎补充其他的实现思路
|
|