如何找到从一个绝对到另一个绝对的文件路径?

时间:2012-02-25 03:11:22

标签: c#-4.0

e.g。 myfunc(来自:c:\ my \ dir,to:c:\ my \ other \ file.ext)==> .. \ other \ file.ext。

新的Uri()不需要申请,除非它有一个补救措施,它返回URI格式而不是Windows文件名格式。 .LocalPath失败。

1 个答案:

答案 0 :(得分:1)

这应该做你想要的。

        string firstDirectory = "c:\\my\\dir";
        string secondDirectory = "c:\\my\\other\\file.ext";


        var first = firstDirectory.Split('\\');
        var second = secondDirectory.Split('\\');

        var directoriesToGoBack = first.Except(second);
        var directoriesToGoForward = second.Except(first);

        StringBuilder directory = new StringBuilder();

        bool initial = true;
        foreach (string s in directoriesToGoBack)
        {
            if (initial)
            {
                initial = false;
            } else
            {
                directory.Append('\\');
            }
            directory.Append("..");

        }

        foreach (string s in directoriesToGoForward)
        {
            directory.Append('\\');
            directory.Append(s);
        }
        Console.WriteLine(directory.ToString());