因为我想递归我使用 Shell32 的任何文件夹的完整结构,它可以连接到字母驱动器 c:\;d:\ 等以及连接的没有字母的设备,例如 Android 平板电脑。
我的问题是我无法从 FolderItem 中提取文件夹进行递归。
谢谢。
Using Shell32; // reference browse to c:\Windows\System32\shell32.dll
class x
{
public int Hwnd { get; private set; }
public void ListAllFolderObjects()
{
Shell32.Shell shell = new Shell32.Shell();
Folder folder = shell.BrowseForFolder((int)Hwnd, "Choose Folder", 0, 0);
if (folder != null)
GetFolderObjects(folder);
}
private void GetFolderObjects(Folder folder)
{
foreach (FolderItem currentItem in folder.Items())
{
// a
string sType = currentItem.Type;
string sName = currentItem.Name;
if (sType == "folder")
{
// problem here - cannot get a folder from currentItem
// how do I cast FolderItem to Folder???????
GetFolderObjects(currentItem); // recurse
}
}
}
// from main
ListAllFolderObjects();