Я пытаюсь переместить файлы с одного пути на другой, путь назначения должен поддерживать портативные устройства, такие как телефоны Android.
После обнаружения FolderBrowserDialog
не поддерживает портативные устройства, я обнаружил этот блог, в котором объясняется, как использовать Shell32
и COM-Objects
.
Проблема в том, что мне нужно сохранить путь (строку) и загрузить его обратно (из файла) как объект Folder
, метод для этого заключается в использовании метода оболочки shell.NameSpace(path)
.
Это работает только с системными путями, в противном случае возвращается null:
shell = new Shell();
Folder folder = shell.BrowseForFolder((int) Handle, "Select folder", 0, 0);
Folder folderFromPath = shell.NameSpace((folder as Folder3).Self.Path);
//folderFromPath is null if I choose android device folder.
Пока это работает:
Folder folderFromPath = shell.NameSpace("C:\\Program Files");
//folderFromPath is not null
Есть ли другой способ сделать это?