这是一行:
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 /与替换的行不好,它没有给我我需要的结果。
答案 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
值,不是字符串。