public virtual async Task SaveAsync(MediaFile mediaFile, MediaStorageItem item) { Guard.NotNull(mediaFile, nameof(mediaFile)); // TODO: (?) if the new file extension differs from the old one then the old file never gets deleted var filePath = GetPath(mediaFile); if (item != null) { // Create folder if it does not exist yet var dir = Path.GetDirectoryName(filePath); await _fileSystem.TryCreateDirectoryAsync(dir); using (item) { using var outStream = (await _fileSystem.GetFileAsync(filePath)).OpenWrite(); await item.SaveToAsync(outStream, mediaFile); } } else { // Remove media storage if any await _fileSystem.TryDeleteFileAsync(filePath); } }
public virtual async Task DeleteAsync(MediaFile mediaFile) { Guard.NotNull(mediaFile, nameof(mediaFile)); var filter = string.Format("{0}*.*", mediaFile.Id.ToString(IdFormatString)); await foreach (var file in _fileSystem.EnumerateFilesAsync(_thumbsRootDir, filter, deep: true)) { await _fileSystem.TryDeleteFileAsync(file.SubPath); } }