при обращении ShellTreeView.Root:='/'
выдается исключение в строке 1002, которое сообщает, что / - не файл и далее выдается сообщение об шибке
- Код: Выделить всё
if TShellTreeNode(ANode).IsDirectory then
begin
//Note: the folder may have been deleted in the mean time
//an exception will be raised by the next line in that case
FShellListView.Root := GetPathFromNode(ANode)
end
else
begin
if not FileExistsUtf8(CurrentNodePath) then
Raise EShellCtrl.CreateFmt(sShellCtrlsSelectedItemDoesNotExists,[CurrentNodePath]);
Эта ошибка возникает из-за того, что корневой узел дерева не имеет признака IsDirectory
- Код: Выделить всё
...
if TShellTreeNode(ANode).IsDirectory then
...
исправляется вот так:
- Код: Выделить всё
if (TShellTreeNode(ANode).IsDirectory) or (ANode.Text='/') then
begin
Хотя по хорошему надо лезть и искать функцию которая формирует дерево и разбираться, почему / не является директорией
Но даже такое исправление позволяет нормально отобразить список каталогов корневого раздела в ОС Linux