如何从路径目录字符串中删除文件名?

时间:2014-12-15 17:50:31

标签: c# .net winforms

这是一行:

string f = Path.GetFullPath("c:\\t.txt").Replace(":", "").Replace("\\", "/");

我尝试过:string t = f.LastIndexOf(" /");但那不起作用。 f现在是:c / t.txt 我需要f只会是c / 如果文件名的目录是:c:\ subdir \ sub \ t.txt 所以最后f应该是:c / subdir / sub,最后没有t.txt。

我现在尝试了这个:

问题在于我正在做的事情:

f.TargetFolder = Path.GetDirectoryName(txf);
f.TargetFolder = Path.GetFullPath(txf).Replace(":", "").Replace("\\", "/");

带有替换的第二行留给我C / test.txt我试图只替换自己的字符串而没有GetFullPath仅来自txf但是同样的结果在TargetFolder我有c / test.txt我需要只有c /与替换的行不好,它没有给我我需要的结果。

1 个答案:

答案 0 :(得分:6)

使用Path.GetDirectoryName获取表示包含该文件的目录的文件路径部分。例如:

Path.GetDirectoryName("C:\\path\\to\\file.txt"); // returns C:\path\to

更多例子:

INPUT                              OUTPUT
---------------------------------  ------------------------
C:\path\to\file.txt                C:\path\to
C:\path\to\                        C:\path\to
C:\path\to                         C:\path
C:\path\                           C:\path
C:\path                            C:\
C:\                                (null)
C:                                 (null)
\path\to\file.txt                  \path\to
path\to\file.txt                   path\to
\\server\share\path\to\file.txt    \\server\share\path\to
\\server\share                     (null)
\\server                           (null)
上面的

(null)表示返回值为null值,不是字符串