Пример #1
0
        private string GetMimeType(BaseFsEntry fsEntry)
        {
            if (fsEntry.IsDirectory())
            {
                return("directory");
            }

            return(MimeTypeMap.GetMimeType(System.IO.Path.GetExtension(fsEntry.Name)));
        }
Пример #2
0
        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
                    }));
                }
            }
        }