Как найти относительный путь к файлу от одного абсолюта к другому? - PullRequest
1 голос
/ 25 февраля 2012

например, myfunc (от: c: \ my \ dir до: c: \ my \ other \ file.ext) ==> .. \ other \ file.ext.

newUri () не нужно применять, если только не существует способа вернуть формат URI, а не формат имени файла Windows.Ошибка .LocalPath.

1 Ответ

1 голос
/ 25 февраля 2012

Это должно делать то, что вы хотите.

        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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...