假设我有一个名为test
的文件夹
现在我将该文件夹传递给程序,它将在包含目标文件夹的同一目录中输出名为test.xyz
的文件。
我使用的一般逻辑就像是
string outDir = Path.GetDirectoryName(path);
string outName = Path.GetFileName(path).TrimEnd("\\".ToCharArray()) + ".xyz";
string outFile = Path.Combine(outDir, outName);
哪个有效,但是为了构建我的新文件名而执行这么多操作似乎有点过分了。
1:我可以减少Path调用次数来实现我的结果吗? 2:我可以对第二行做些什么来避免修剪并避免使用添加操作吗?
答案 0 :(得分:2)
这似乎适用于我的快速测试:
string outFile = Path.GetFullPath(path) + ".xyz";
虽然我刚刚意识到您的path
可能已包含尾随斜杠。如果你无法改变它以避免这种情况,你仍然需要加入.TrimEnd()
电话。
在我的测试中,我正在使用var path = @"C:\Windows\System32";
。
答案 1 :(得分:0)
您可以使用FileInfo!
string path = @"C:\Windows\System32\";
FileInfo fi = new FileInfo(path);
string outFile = fi.DirectoryName + ".xyz";
就像一个魅力。甚至在目录字符串中使用尾部斜杠