diff --git a/data/src/main/java/org/cryptomator/data/cloud/pcloud/PCloudImpl.java b/data/src/main/java/org/cryptomator/data/cloud/pcloud/PCloudImpl.java index 22e077a2..1bee544f 100644 --- a/data/src/main/java/org/cryptomator/data/cloud/pcloud/PCloudImpl.java +++ b/data/src/main/java/org/cryptomator/data/cloud/pcloud/PCloudImpl.java @@ -109,7 +109,9 @@ class PCloudImpl { public boolean exists(PCloudNode node) throws IOException, BackendException { try { - if (node instanceof PCloudFolder) { + if (node instanceof RootPCloudFolder) { + client().loadFolder("/").execute(); + } else if (node instanceof PCloudFolder) { client().loadFolder(node.getPath()).execute(); } else { client().loadFile(node.getPath()).execute(); @@ -124,8 +126,13 @@ class PCloudImpl { public List list(PCloudFolder folder) throws IOException, BackendException { List result = new ArrayList<>(); + String path = folder.getPath(); + if (folder instanceof RootPCloudFolder) { + path = "/"; + } + try { - RemoteFolder listFolderResult = client().listFolder(folder.getPath()).execute(); + RemoteFolder listFolderResult = client().listFolder(path).execute(); List entryMetadata = listFolderResult.children(); for (RemoteEntry metadata : entryMetadata) { result.add(PCloudNodeFactory.from(folder, metadata));