У меня есть папка с некоторым путем, например C:\repository\data
.Как получить корневой каталог от общего пути?
Я разделил эту папку, так что у него есть имя хоста, например \\10.10.10.254\repository\data
У меня есть метод
string GetDriveRootPathFromPath(IEnumerable<string> lokalPathCollection, string sharePath)
{
var rootPath = _win32.GetVolumePathName(sharePath);
return lokalPathCollection.FirstOrDefault(x => x.Equals(rootPath, StringComparison.OrdinalIgnoreCase));
}
они не работают, потому что они не могут найти диск с этим именем \\10.10.10.254\
.
Как я могу изменить этот метод, чтобы найти диск C:\
, в моем примере, потому что repository\data
находятся на этом диске?
Я думаю, что мы должны установить' сегменты [2] 'и' сегменты [3] ', а не' сегменты [1] 'и' сегменты [2] '. И почему нам нужна последняя строка? – Anatoly
@Anatoly О да, я не компилировал и не отлаживал код. Последняя строка была просто демонстрацией того, как разрешить полный путь в локальном пути. Этот код переведет '\\ 10.10.10.254 \ repository \ data \ files \ file1.txt' в' c: \ shares \ repository \ data \ files \ file1.txt' Не стесняйтесь, чтобы развить код в соответствии с вашими потребностями. –
У меня есть 'System.UnauthorizedAccessException, который был необработанным кодом пользователя. Сообщение = Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)), потому что я подключился к своей виртуальной машине, а не к локальному компьютеру. Как решить эту ситуацию? – Anatoly