public FileExplorerResponse ReadData(string path, string filter) { FileExplorerResponse ReadResponse = new FileExplorerResponse(); try { ReadResponse = FileExplorerOperations.ReadData(path, filter); string physicalPath = GetPath(path); ReadResponse.cwd.permission = GetPathPermission(path); if (!ReadResponse.cwd.permission.Read) { DirectoryContent[] fileDetails = new DirectoryContent[0]; ReadResponse.files = fileDetails; return(ReadResponse); } var items = ReadResponse.files.ToArray(); for (int i = 0; i < items.Length; i++) { items[i].permission = GetFilePermission(physicalPath, items[i].name, items[i].isFile); if (items[i].isFile) { items[i].permission.EditContents = ReadResponse.cwd.permission.EditContents; items[i].permission.Upload = ReadResponse.cwd.permission.Upload; } } ReadResponse.files = items; return(ReadResponse); } catch (Exception e) { ReadResponse.error = e.GetType().FullName + ", " + e.Message; return(ReadResponse); } }
public static DirectoryContent[] GetAllFileDetails(string path, string[] fNames) { DirectoryContent[] fDetails = new DirectoryContent[fNames.Length]; for (int i = 0; i < fNames.Length; i++) { var targetPath = ToAbsolute(path); if (targetPath != null && fNames[i] != "") { targetPath = CombinePaths(targetPath, fNames[i]); } targetPath = ToPhysicalPath(targetPath); fDetails[i] = GetFileDetails(targetPath); } return(fDetails); }
public static FileExplorerResponse ReadData(string path, string filter) { FileExplorerResponse ReadResponse = new FileExplorerResponse(); try { var directory = new DirectoryInfo(ToPhysicalPath(ToAbsolute(path))); DirectoryContent cwd = new DirectoryContent(); cwd.name = directory.Name; cwd.size = 0; cwd.type = "Directory"; cwd.isFile = false; cwd.dateModified = directory.LastWriteTime.ToString(); cwd.hasChild = directory.GetDirectories().Length > 0 ? true : false; ReadResponse.cwd = cwd; filter = filter.Replace(" ", ""); var extensions = (filter ?? "*").Split(",|;".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); var files = extensions.SelectMany(directory.GetFiles) .Select(file => new DirectoryContent { name = file.Name, isFile = true, size = file.Length, type = "File", dateModified = file.LastWriteTime.ToString(), hasChild = false }); var directories = directory.GetDirectories().Select(subDirectory => new DirectoryContent { name = subDirectory.Name, size = 0, type = "Directory", isFile = false, dateModified = subDirectory.LastWriteTime.ToString(), hasChild = subDirectory.GetDirectories().Length > 0 ? true : false }); object fileDetails = files.Concat(directories); ReadResponse.files = (IEnumerable <DirectoryContent>)fileDetails; return(ReadResponse); } catch (Exception e) { ReadResponse.error = e.GetType().FullName + ", " + e.Message; return(ReadResponse); } }
public static FileExplorerResponse Remove(string[] names, string path) { FileExplorerResponse DeleteResponse = new FileExplorerResponse(); try { DirectoryContent[] removedFiles = new DirectoryContent[names.Length]; for (int i = 0; i < names.Length; i++) { var fullPath = CombinePaths(ToAbsolute(path), names[i]); if (!string.IsNullOrEmpty(names[i])) { var physicalPath = ToPhysicalPath(fullPath); removedFiles[i] = GetFileDetails(physicalPath); FileAttributes attr = File.GetAttributes(physicalPath); //detect whether its a directory or file if ((attr & FileAttributes.Directory) == FileAttributes.Directory) { DeleteDirectory(physicalPath); } else { System.IO.File.Delete(physicalPath); } } else { throw new ArgumentNullException("name should not be null"); } } DeleteResponse.files = removedFiles; return(DeleteResponse); } catch (Exception e) { DeleteResponse.error = e.GetType().FullName + ", " + e.Message; return(DeleteResponse); } }