public async Task <IList <BlobContainer> > GetContainers(BlobContainer container) { var fullPath = Path.Combine(_root, container.Identifier); var dirInfo = new DirectoryInfo(fullPath); return(dirInfo.GetDirectories().Select(x => ConstructContainer(x)).ToList()); }
public async Task <IList <Blob> > GetBlobs(BlobContainer container) { var fullPath = Path.Combine(_root, container.Identifier); var dirInfo = new DirectoryInfo(fullPath); return(dirInfo.GetFiles().Select(fi => ConstructBlob(fi)).ToList()); }
public async Task <BlobContainer> CreateContainer(BlobContainer container) { //The Identifier is full path of the directory. var fullPath = Path.Combine(_root, container.Identifier); var dirInfo = new DirectoryInfo(fullPath); if (dirInfo.Exists == false) { dirInfo.Create(); } if (Directory.Exists(container.Identifier)) { Directory.CreateDirectory(container.Identifier); } return(ConstructContainer(dirInfo)); }
private BlobContainer ConstructContainer(DirectoryInfo item) { var relativePath = item.FullName.Replace(_root, string.Empty).Replace("\\", "/"); //Get the relative url from the path var result = new BlobContainer { BlobStorage = this, DisplayName = item.Name, Name = item.Name, Identifier = relativePath, Uri = relativePath, Metadata = new PropertyBag { { "CreationTimeUtc", item.CreationTimeUtc }, { "LastWriteTimeUtc", item.LastWriteTimeUtc }, { "LastAccessTimeUtc", item.LastAccessTimeUtc } } }; return(result); }