C#创建与文件夹名称相同的文件,带扩展名

时间:2012-06-10 19:56:53

标签: c#

假设我有一个名为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:我可以对第二行做些什么来避免修剪并避免使用添加操作吗?

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";

就像一个魅力。甚至在目录字符串中使用尾部斜杠