public FileSystemResult LookupContents(string query, bool includeFiles, bool allowFoldersWithoutTrailingSlashes) { if (query.IsNullOrWhiteSpace()) { if (OsInfo.IsWindows) { var result = new FileSystemResult(); result.Directories = GetDrives(); return(result); } query = "/"; } if ( allowFoldersWithoutTrailingSlashes && query.IsPathValid() && _diskProvider.FolderExists(query)) { return(GetResult(query, includeFiles)); } var lastSeparatorIndex = query.LastIndexOf(Path.DirectorySeparatorChar); var path = query.Substring(0, lastSeparatorIndex + 1); if (lastSeparatorIndex != -1) { return(GetResult(path, includeFiles)); } return(new FileSystemResult()); }
public FileSystemResult LookupContents(string query, bool includeFiles) { var result = new FileSystemResult(); if (query.IsNullOrWhiteSpace()) { if (OsInfo.IsWindows) { result.Directories = GetDrives(); return(result); } query = "/"; } var lastSeparatorIndex = query.LastIndexOf(Path.DirectorySeparatorChar); var path = query.Substring(0, lastSeparatorIndex + 1); if (lastSeparatorIndex != -1) { try { result.Parent = GetParent(path); result.Directories = GetDirectories(path); if (includeFiles) { result.Files = GetFiles(path); } } catch (DirectoryNotFoundException) { return(new FileSystemResult { Parent = GetParent(path) }); } catch (ArgumentException) { return(new FileSystemResult()); } catch (IOException) { return(new FileSystemResult { Parent = GetParent(path) }); } catch (UnauthorizedAccessException) { return(new FileSystemResult { Parent = GetParent(path) }); } } return(result); }
public FileSystemResult LookupContents(string query, bool includeFiles) { var result = new FileSystemResult(); if (query.IsNullOrWhiteSpace()) { if (OsInfo.IsWindows) { result.Directories = GetDrives(); return result; } query = "/"; } var lastSeparatorIndex = query.LastIndexOf(Path.DirectorySeparatorChar); var path = query.Substring(0, lastSeparatorIndex + 1); if (lastSeparatorIndex != -1) { try { result.Parent = GetParent(path); result.Directories = GetDirectories(path); if (includeFiles) { result.Files = GetFiles(path); } } catch (DirectoryNotFoundException) { return new FileSystemResult { Parent = GetParent(path) }; } catch (ArgumentException) { return new FileSystemResult(); } catch (IOException) { return new FileSystemResult { Parent = GetParent(path) }; } catch (UnauthorizedAccessException) { return new FileSystemResult { Parent = GetParent(path) }; } } return result; }
private FileSystemResult GetResult(string path, bool includeFiles) { var result = new FileSystemResult(); try { result.Parent = GetParent(path); result.Directories = GetDirectories(path); if (includeFiles) { result.Files = GetFiles(path); } } catch (DirectoryNotFoundException) { return(new FileSystemResult { Parent = GetParent(path) }); } catch (ArgumentException) { return(new FileSystemResult()); } catch (IOException) { return(new FileSystemResult { Parent = GetParent(path) }); } catch (UnauthorizedAccessException) { return(new FileSystemResult { Parent = GetParent(path) }); } return(result); }