private Storage.FileInfo CreateFileInfo(Metadata metadata)
        {
            var fileInfo = new Storage.FileInfo
            {
                IsDirectory  = metadata.IsFolder,
                Path         = metadata.IsFolder ? metadata.AsFolder.PathDisplay : metadata.AsFile.PathDisplay,
                Size         = metadata.IsFolder ? 0 : (long)metadata.AsFile.Size,
                LastModified = metadata.IsFolder ? DateTime.MinValue : metadata.AsFile.ClientModified
            };

            return(fileInfo);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Retrieves file information
 /// </summary>
 /// <param name="path">File path.</param>
 /// <returns>File information.</returns>
 public IFileInfo GetFileInfo(string path)
 {
     System.IO.FileInfo info = new System.IO.FileInfo(path);
     Storage.FileInfo fileInfo = new Storage.FileInfo();
     if (info.Exists)
     {
         fileInfo.Path = path;
         fileInfo.LastModified = info.LastWriteTime;
         fileInfo.Size = info.Length;
         fileInfo.IsDirectory = false;
     }
     return fileInfo;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Retrieves file information
        /// </summary>
        /// <param name="path">File path.</param>
        /// <returns>File information.</returns>
        public IFileInfo GetFileInfo(string path)
        {
            GetObjectMetadataRequest request = new GetObjectMetadataRequest
            {
                BucketName = _bucketName,
                Key        = path
            };

            GetObjectMetadataResponse response = _client.GetObjectMetadata(request);

            IFileInfo file = new Storage.FileInfo();

            file.Path         = path;
            file.Size         = response.ContentLength;
            file.LastModified = response.LastModified;

            return(file);
        }
Ejemplo n.º 4
0
        public IEnumerable <IFileInfo> GetFilesInfo(string path)
        {
            IFileInfo info;

            string normalizedBlobName = NormalizePath(path);
            //if (!normalizedBlobName.EndsWith(Delimiter.ToString()))
            //    normalizedBlobName += Delimiter;

            CloudBlobDirectory directory = _container.GetDirectoryReference(normalizedBlobName);

            List <IFileInfo> filesInfo = new List <IFileInfo>();

            foreach (IListBlobItem blob in directory.ListBlobs())
            {
                CloudBlobDirectory blobDirectory = blob as CloudBlobDirectory;

                if (blobDirectory != null)
                {
                    info = new Storage.FileInfo {
                        Path = blobDirectory.Prefix, IsDirectory = true
                    };
                }
                else
                {
                    ICloudBlob blobFile = (ICloudBlob)blob;

                    DateTime lastModificationDate = DateTime.MinValue;
                    if (blobFile.Properties.LastModified.HasValue)
                    {
                        lastModificationDate = blobFile.Properties.LastModified.Value.DateTime;
                    }

                    info = new Storage.FileInfo {
                        Path = blobFile.Name, IsDirectory = false, LastModified = lastModificationDate, Size = blobFile.Properties.Length
                    };
                }

                filesInfo.Add(info);
            }

            return(filesInfo);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Retrieves list of files and folders
        /// </summary>
        /// <param name="path">Directory path.</param>
        /// <returns>Files and folders.</returns>
        public IEnumerable <IFileInfo> GetFilesInfo(string path)
        {
            var prefix = path.Length > 1 ? path : string.Empty;

            ListObjectsRequest request = new ListObjectsRequest
            {
                BucketName = _bucketName,
                Prefix     = prefix,
                Delimiter  = "/"
            };

            ListObjectsResponse response = _client.ListObjects(request);

            List <IFileInfo> files = new List <IFileInfo>();

            // add directories
            foreach (string directory in response.CommonPrefixes)
            {
                IFileInfo folder = new Storage.FileInfo();
                folder.Path        = directory;
                folder.IsDirectory = true;

                files.Add(folder);
            }

            // add files
            foreach (S3Object entry in response.S3Objects)
            {
                IFileInfo file = new Storage.FileInfo
                {
                    Path         = entry.Key,
                    IsDirectory  = false,
                    LastModified = entry.LastModified,
                    Size         = entry.Size
                };

                files.Add(file);
            }

            return(files);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Retrieves list of files and folders
 /// </summary>
 /// <param name="path">Directory path.</param>
 /// <returns>Files and folders.</returns>
 public IEnumerable<IFileInfo> GetFilesInfo(string path)
 {
     List<IFileInfo> filesInfo = new List<IFileInfo>();
     foreach (string directory in Directory.GetDirectories(path))
     {
         DirectoryInfo directoryInfo = new DirectoryInfo(directory);
         IFileInfo info = new Storage.FileInfo();
         info.IsDirectory = true;
         info.Path = directoryInfo.FullName;
         info.LastModified = directoryInfo.LastWriteTime;
         filesInfo.Add(info);
     }
     foreach (string file in Directory.GetFiles(path))
     {
         System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);
         IFileInfo info = new Storage.FileInfo();
         info.IsDirectory = false;
         info.Path = fileInfo.FullName;
         info.LastModified = fileInfo.LastWriteTime;
         info.Size = fileInfo.Length;
         filesInfo.Add(info);
     }
     return filesInfo;
 }