private DirInfo GetParent(DirInfo directory) { if (directory == null) { return(null); } string parentPath; if (directory.RelPath.EndsWith("/")) { parentPath = directory.RelPath.Substring(0, directory.RelPath.Length - 1); } else { parentPath = directory.RelPath; } int lastIndex = parentPath.LastIndexOf("/", StringComparison.Ordinal); if (lastIndex == -1) { return(null); } parentPath = parentPath.Substring(0, lastIndex); if (string.IsNullOrEmpty(parentPath)) { return(null); } List <DirInfo> parentInfo = client.GetDirectories(parentPath, true); return(parentInfo != null && parentInfo.Count > 0 ? parentInfo[0] : null); }