/// <summary> /// Creates a new instance /// </summary> /// <param name="folderPath">Folder path to the blob</param> /// <param name="name">Name of the blob withing a specific folder.</param> /// <param name="kind">Blob kind (file or folder)</param> public Blob(string folderPath, string name, BlobItemKind kind) { Name = name ?? throw new ArgumentNullException(nameof(name)); Name = StoragePath.NormalizePart(Name); FolderPath = StoragePath.Normalize(folderPath); Kind = kind; }
/// <summary> /// Create a new instance /// </summary> /// <param name="fullPath"></param> /// <param name="kind"></param> public Blob(string fullPath, BlobItemKind kind = BlobItemKind.File) { string path = StoragePath.Normalize(fullPath); string[] parts = StoragePath.Split(path); Name = parts.Last(); FolderPath = StoragePath.GetParent(path); Kind = kind; }
private BlobId ToBlobItem(string fullPath, BlobItemKind kind) { string id = Path.GetFileName(fullPath); fullPath = fullPath.Substring(_directory.FullName.Length); fullPath = fullPath.Replace(Path.DirectorySeparatorChar, StoragePath.PathSeparator); fullPath = fullPath.Trim(StoragePath.PathSeparator); fullPath = StoragePath.PathStrSeparator + fullPath; return(new BlobId(fullPath, kind)); }
/// <summary> /// Create a new instance /// </summary> /// <param name="fullId"></param> /// <param name="kind"></param> public BlobId(string fullId, BlobItemKind kind = BlobItemKind.File) { string path = StoragePath.Normalize(fullId); string[] parts = StoragePath.Split(path); Id = parts.Last(); FolderPath = parts.Length > 1 ? StoragePath.Combine(parts.Take(parts.Length - 1)) : StoragePath.PathStrSeparator; Kind = kind; }
private BlobId ToBlobItem(string fullPath, BlobItemKind kind, bool includeMeta) { fullPath = fullPath.Substring(_directory.FullName.Length); fullPath = fullPath.Replace(Path.DirectorySeparatorChar, StoragePath.PathSeparator); fullPath = fullPath.Trim(StoragePath.PathSeparator); fullPath = StoragePath.PathStrSeparator + fullPath; var blobId = new BlobId(fullPath, kind); if (includeMeta) { blobId.Meta = BlobMetaFromId(blobId.FullPath); } return(blobId); }
private Blob ToBlobItem(string fullPath, BlobItemKind kind, bool includeMeta) { fullPath = fullPath.Substring(_directoryFullName.Length); fullPath = fullPath.Replace(Path.DirectorySeparatorChar, StoragePath.PathSeparator); fullPath = fullPath.Trim(StoragePath.PathSeparator); fullPath = StoragePath.PathSeparatorString + fullPath; var blobId = new Blob(fullPath, kind); if (includeMeta) { EnrichWithMetadata(blobId); } return(blobId); }
private Blob ToBlobItem(string fullPath, BlobItemKind kind, bool includeMeta) { string relPath = fullPath.Substring(_directoryFullName.Length); relPath = relPath.Replace(Path.DirectorySeparatorChar, StoragePath.PathSeparator); relPath = relPath.Trim(StoragePath.PathSeparator); relPath = StoragePath.PathSeparatorString + relPath; if (kind == BlobItemKind.File) { var fi = new FileInfo(fullPath); var blob = new Blob(relPath, kind); blob.Size = fi.Length; blob.LastModificationTime = fi.CreationTimeUtc; blob.TryAddProperties( "IsReadOnly", fi.IsReadOnly.ToString(), "LastAccessTimeUtc", fi.LastAccessTimeUtc.ToString(), "LastWriteTimeUtc", fi.LastWriteTimeUtc.ToString(), "Attributes", FormatFlags(fi.Attributes)); if (includeMeta) { EnrichWithMetadata(blob); } return(blob); } else { var di = new DirectoryInfo(fullPath); var blob = new Blob(relPath, BlobItemKind.Folder); blob.LastModificationTime = di.CreationTimeUtc; blob.TryAddProperties( "LastAccessTimeUtc", di.LastAccessTimeUtc.ToString(), "LastWriteTimeUtc", di.LastWriteTimeUtc.ToString(), "Attributes", FormatFlags(di.Attributes)); if (includeMeta) { EnrichWithMetadata(blob); } return(blob); } }
private Blob ToBlobItem(string fullPath, BlobItemKind kind, bool includeMeta) { fullPath = fullPath.Substring(_directoryFullName.Length); fullPath = fullPath.Replace(Path.DirectorySeparatorChar, StoragePath.PathSeparator); fullPath = fullPath.Trim(StoragePath.PathSeparator); fullPath = StoragePath.PathSeparatorString + fullPath; var blob = new Blob(fullPath, kind); var fi = new FileInfo(fullPath); blob.TryAddProperties( "IsReadOnly", fi.IsReadOnly.ToString(), "LastAccessTimeUtc", fi.LastAccessTimeUtc.ToString(), "LastWriteTimeUtc", fi.LastWriteTimeUtc.ToString(), "Attributes", fi.Attributes.ToString()); if (includeMeta) { EnrichWithMetadata(blob); } return(blob); }
/// <summary> /// Create a new instance /// </summary> /// <param name="fullPath"></param> /// <param name="kind"></param> public Blob(string fullPath, BlobItemKind kind = BlobItemKind.File) { SetFullPath(fullPath); Kind = kind; }
/// <summary> /// Creates a new instance /// </summary> /// <param name="folderPath"></param> /// <param name="id"></param> /// <param name="kind"></param> public BlobId(string folderPath, string id, BlobItemKind kind) { Id = id ?? throw new ArgumentNullException(nameof(id)); FolderPath = folderPath; Kind = kind; }
/// <summary> /// Creates a new instance /// </summary> /// <param name="folderPath">Folder path to the blob</param> /// <param name="name">Name of the blob withing a specific folder.</param> /// <param name="kind">Blob kind (file or folder)</param> public Blob(string folderPath, string name, BlobItemKind kind) { Name = name ?? throw new ArgumentNullException(nameof(name)); FolderPath = folderPath; Kind = kind; }