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); }
/// <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; }
/// <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); }
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); }
/// <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); }
/// <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; }