Example #1
0
        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);
            }
        }
Example #2
0
 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);
 }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
            }
        }