private string GetMimeType(BaseFsEntry fsEntry) { if (fsEntry.IsDirectory()) { return("directory"); } return(MimeTypeMap.GetMimeType(System.IO.Path.GetExtension(fsEntry.Name))); }
private Task <Fs.FsBase> CreateElFinderFsItem(BaseFsEntry fsEntry) { if (fsEntry == null) { throw new ArgumentNullException(nameof(fsEntry)); } string mimeType = GetMimeType(fsEntry); if (fsEntry is FileEntry) { var file = fsEntry as FileEntry; if (IsImage(mimeType)) { var tmb = GetTmb(file.Md5Hash); string deminisation = string.Empty; System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"_(\d*x\d*)"); var m = regex.Match(tmb); if (m.Success) { deminisation = m.Groups[1].Value; } return(Task.FromResult <Fs.FsBase>(new Fs.FsImageFile { Hash = GetHash(file.Path), Locked = 0, Mime = mimeType, Name = file.Name, ParentHash = GetHash(file.ParentPath), Read = file.CanRead ? 1 : 0, Size = file.Size, Timestamp = file.LastModified.ToUnixTimeSeconds(), Write = file.CanWrite ? 1 : 0, Tmb = tmb, Deminisation = deminisation })); //var (stream, filename) = await GetFile(GetHash(file.Path)); // using (stream) //using (var image = ElFinder.ImageProcessor.Load(stream)) //{ //} } else { return(Task.FromResult <Fs.FsBase>(new Fs.FsFile { Hash = GetHash(file.Path), Locked = 0, Mime = mimeType, Name = file.Name, ParentHash = GetHash(file.ParentPath), Read = file.CanRead ? 1 : 0, Size = file.Size, Timestamp = file.LastModified.ToUnixTimeSeconds(), Write = file.CanWrite ? 1 : 0 })); } } else { var directory = fsEntry as DirectoryEntry; if (directory.Path == string.Empty) { //Root return(Task.FromResult <Fs.FsBase>(new Fs.FsRoot { HasDirs = directory.HasSubDirectories ? 1 : 0, Hash = GetHash(directory.Path), Locked = 1, Mime = mimeType, Name = directory.Name, Options = Options, ParentHash = GetHash(directory.ParentPath), Read = directory.CanRead ? 1 : 0, Timestamp = directory.LastModified.ToUnixTimeSeconds(), VolimeId = VolumeId, Write = directory.CanWrite ? 1 : 0 })); } else { return(Task.FromResult <Fs.FsBase>(new Fs.FsDirectory { HasDirs = directory.HasSubDirectories ? 1 : 0, Hash = GetHash(directory.Path), Locked = 0, Mime = mimeType, Name = directory.Name, ParentHash = GetHash(directory.ParentPath), Read = directory.CanRead ? 1 : 0, Timestamp = directory.LastModified.ToUnixTimeSeconds(), VolimeId = VolumeId, Write = directory.CanWrite ? 1 : 0 })); } } }