gpt4 book ai didi

c# - Path.Combine() 返回意外结果

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:34 25 4
gpt4 key购买 nike

我正在尝试使用 Path.Combine() 创建路径,但我得到了意想不到的结果。

using System;
using System.IO;

namespace PathCombine_Delete
{
class Program
{
static void Main(string[] args)
{
string destination = "D:\\Directory";
string destination02 = "it";
string path = "L:\\MyFile.pdf";
string sourcefolder = "L:\\";//In other instances, it could be L:\\SomeFolder\AndMayBeAnotherFolder
string replacedDetails = path.Replace(sourcefolder + "\\", "");

string result = Path.Combine(destination, destination02, replacedDetails);

Console.WriteLine(result);
Console.ReadKey();//Keep it on screen
}
}
}

我期望结果 D:\\Directory\it\MyFile.pdf 但我得到的是 L:\MyFile.pdf

我不明白为什么?我承认这里已经很晚了,但我仍然使用了 Path.Combine很多次,从 .NET 4.0 开始,它允许传递字符串参数。但是,它似乎忽略了前 2 个而只读取了最后一个。

最佳答案

这里是错误

 string replacedDetails = path.Replace(sourcefolder + "\\" , "");

您正在添加另一个反斜杠,但没有发现要替换的内容。
删除添加的反斜杠可以提供正确的字符串来搜索和替换

 string replacedDetails = path.Replace(sourcefolder , "");

但是你可以避免所有的替换东西和中间变量只是用

 string result = Path.Combine(destination, destination02, Path.GetFileName(path));

关于c# - Path.Combine() 返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com