Arlodotexe / OwlCore.Storage

The most flexible file system abstraction, ever. Built in partnership with the UWP Community.
16 stars 4 forks source link

v0.8.0: Move/Copy improvements, removed path, improved names, new interfaces / extension methods #19

Closed Arlodotexe closed 1 year ago

Arlodotexe commented 1 year ago

Summary

Full release notes

--- 0.8.0 ---
THIS IS A BREAKING RELEASE
Update asap, and do not use older versions or implementations.

[Breaking]
Path was removed from IAddressableStorable. This was not spec'd or standardized, and simply exposed the "path" used by the underlying implementation, so we removed it. Additional tooling has been added to substitute any functionality gaps that removing this has caused.
Renamed IStorageProperties{T} to IStorageProperty{T}.
Renamed IAddressableStorable to IStorableChild, as the only thing on the interface is now GetParentAsync.
Renamed IAddressableFolder to IChildFolder.
Renamed IAddressableFile to IChildFile.
Renamed IFolderCanFastGetItem to IFastGetItem.
Renamed IFolderCanFastGetFirstItemByName to IFastGetFirstByName.
Renamed the extension method GetFirstItemByNameAsync to GetFirstByNameAsync.
IModifiableFolder no longer requires implementing copy/move operations. Please remove from your implementations, and implement the fastpath interfaces where appropriate.
HttpFile's constructor now only has 1 parameter - the Uri.
HttpFile has a new constructor that takes a string instead of a Uri, for convenience.
HttpFile.Name now has an init-only setter.
HttpFile.Id is no longer customizable, and is always created from the provided Uri instead.

[New]
Added IFastGetRoot interface.
Added IFastFileCopy{T} interface.
Added IFastFileMove{T} interface.
Added IFastGetItemRecursive interface.
Added GetRootAsync extension method.
Added ModifiableFolderExtensions.CreateCopyOfAsync{T} extension method.
Added ModifiableFolderExtensions.MoveFromAsync{T} extension method.
Added FolderExtensions.GetItemRecursiveAsync extension method.
Added FolderExtensions.GetRelativePathToAsync extension method, to generate a relative path from one item to another.
Added FolderExtensions.GetItemByRelativePathAsync extension method, to traverse a relative path from one item to another.
Added FolderExtensions.GetItemRecursiveAsync extension method, to recursively search a folder for an item with the provided ID.
SystemFolder now implements IFastGetRoot.
ZipArchiveFolder now implements IFastGetRoot.
ReadOnlyZipArchiveFolder now implements IFastGetRoot.