1

假设我有一个名为test.
现在我将该文件夹传递给一个程序,它将输出一个test.xyz在包含目标文件夹的同一目录中调用的文件。

我使用的一般逻辑类似于

string outDir = Path.GetDirectoryName(path);
string outName = Path.GetFileName(path).TrimEnd("\\".ToCharArray()) + ".xyz";
string outFile = Path.Combine(outDir, outName);

哪个有效,但是仅仅为了构建我的新文件名而执行这么多操作似乎有点过分。

1:我可以减少路径调用的次数来达到我的结果吗?
2:我可以对第二行做些什么来避免修剪并避免使用那个添加操作吗?

4

2 回答 2

2

这似乎在我的快速测试中有效:

string outFile = Path.GetFullPath(path) + ".xyz";

虽然我刚刚意识到你path可能已经包含一个斜杠。如果你不能改变它来避免这种情况,你仍然必须包括这个.TrimEnd()电话。

在我的测试中,我使用var path = @"C:\Windows\System32";.

于 2012-06-10T20:01:32.260 回答
0

您可以为此使用 FileInfo !

string path = @"C:\Windows\System32\";
FileInfo fi = new FileInfo(path);
string outFile = fi.DirectoryName + ".xyz";

奇迹般有效。即使目录字符串中有斜杠

于 2012-06-10T20:10:26.013 回答