OwlCore.Storage
0.8.4
See the version list below for details.
dotnet add package OwlCore.Storage --version 0.8.4
NuGet\Install-Package OwlCore.Storage -Version 0.8.4
<PackageReference Include="OwlCore.Storage" Version="0.8.4" />
paket add OwlCore.Storage --version 0.8.4
#r "nuget: OwlCore.Storage, 0.8.4"
// Install OwlCore.Storage as a Cake Addin #addin nuget:?package=OwlCore.Storage&version=0.8.4 // Install OwlCore.Storage as a Cake Tool #tool nuget:?package=OwlCore.Storage&version=0.8.4
The most flexible file system abstraction, ever. Built in partnership with the UWP Community.
This package enables early adoption of CommunityToolkit.Storage, a proposed package in Toolkit Labs, eventually to end up in CommunityToolkit/dotnet on GitHub.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 7.0.0)
- System.Linq.Async (>= 6.0.1)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on OwlCore.Storage:
Package | Downloads |
---|---|
OwlCore
Have you ever seen an owl do a barrel roll? Me neither. Essential supplemental tooling for .NET development. |
|
OwlCore.Kubo
An essential toolkit for Kubo, IPFS and the distributed web. |
|
CoptLib
A .NET Standard 2.0 library made to handle scenarios involving documents with interdependencies and multilingual content. |
|
OwlCore.Storage.SharpCompress
Provides a generic archive implementation via SharpCompress for the OwlCore.Storage APIs. Verified support for `.7z`, `.tar`, and `.zip` archives created by 7Zip and `.zip` archives by Windows File Explorer. Reading and writing GZip archives is partially supported with the same limitations as SharpCompress. |
|
OwlCore.Storage.CommonTests
Package Description |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on OwlCore.Storage:
Repository | Stars |
---|---|
yoshiask/FluentStore
A unifying frontend for Windows app stores and package managers
|
|
securefolderfs-community/SecureFolderFS
Powerful, secure, modern way to keep your files protected.
|
|
Arlodotexe/strix-music
Combine any music sources into a single library. It's your music. Play it your way.
|
Version | Downloads | Last updated |
---|---|---|
0.12.1 | 153 | 11/21/2024 |
0.12.0 | 1,011 | 9/7/2024 |
0.11.3 | 1,442 | 6/24/2024 |
0.11.2 | 120 | 6/20/2024 |
0.11.1 | 346 | 5/18/2024 |
0.11.0 | 681 | 4/3/2024 |
0.10.1 | 112 | 4/3/2024 |
0.10.0 | 1,859 | 3/18/2024 |
0.9.3 | 2,306 | 1/5/2024 |
0.9.2 | 842 | 11/15/2023 |
0.9.1 | 168 | 11/15/2023 |
0.9.0 | 270 | 11/14/2023 |
0.8.7 | 1,498 | 8/16/2023 |
0.8.6 | 743 | 7/10/2023 |
0.8.5 | 1,233 | 5/13/2023 |
0.8.4 | 251 | 5/7/2023 |
0.8.3 | 599 | 2/23/2023 |
0.8.2 | 1,951 | 2/22/2023 |
0.8.1 | 246 | 2/22/2023 |
0.8.0 | 691 | 2/22/2023 |
0.7.1 | 561 | 2/7/2023 |
0.7.0 | 458 | 2/1/2023 |
0.6.1 | 284 | 1/31/2023 |
0.6.0 | 286 | 1/31/2023 |
0.5.3 | 530 | 1/13/2023 |
0.5.2 | 669 | 12/25/2022 |
0.5.1 | 816 | 11/9/2022 |
0.5.0 | 10,068 | 9/6/2022 |
0.4.0 | 1,011 | 9/6/2022 |
0.3.2 | 398 | 9/5/2022 |
0.3.1 | 1,001 | 9/5/2022 |
0.3.0 | 389 | 9/2/2022 |
0.2.0 | 1,311 | 8/31/2022 |
0.1.0 | 386 | 8/30/2022 |
0.0.0 | 392 | 8/30/2022 |
--- 0.8.4 ---
[Fixes]
Removed an old implementation of CreateCopyOfAsync from SystemFolder. Existing code referencing this symbol should now point to the extension method instead. Fixes several bugs.
--- 0.8.3 ---
[Fixes]
Fixed an issue where ReadOnlyZipArchiveFolder's GetFirstByName extension would fail to find folders.
--- 0.8.2 ---
[Fixes]
Fixed an issue with the new CreateCopyOfAsync extension method where it was not opening existing files when overwrite is false.
--- 0.8.1 ---
[Fixes]
Fixed an issue with the new CreateCopyOfAsync extension method where a writable stream was not requested for the destination file.
--- 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.
Refactored HttpFile constructors. Only 1 parameter is required: either a Uri or a string.
HttpFile.Name now has an init-only setter.
HttpFile.MessageHandler 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.
--- 0.7.1 ---
[Fix]
Fixed an issue where providing only a Uri for HttpFile would yield an incorrect file name.
--- 0.7.0 ---
[New]
Added the IFolder.GetFirstItemByNameAsync extension method and the IFolderCanFastGetFirstItemByName interface. Contributed by @yoshiask@github.com.
--- 0.6.1 ---
[Fixes]
Removed leading separator in ZIP archive IDs. Contributed by @yoshiask@github.com.
Fixed ReadOnlyZipArchiveFolder not recognizing existing virtual folders. Contributed by @yoshiask@github.com.
--- 0.6.0 ---
[New]
Added OwlCore.Storage.StreamFile, a file implementation that presents a provided stream as file content.
Added OwlCore.Storage.HttpFile, a file implementation which calls GET on a provided HTTP URL and returns it as file content.
Added OwlCore.Storage.Archive namespace, and new implementations for reading and writing a Zip archive from a file. Contributed by @yoshiask@github.com.
[Improvements]
Added new constructor to MemoryFile that requires only a MemoryStream, no Id or Name. These are calculated from the stream's hash code instead.
--- 0.5.3 ---
[Fixes]
Fixed an issue in SystemFolder where deleting a folder that has children would throw instead of deleting recursively.
[Improvements]
Updated testing dependencies.
--- 0.5.2 ---
[Fixes]
Fixed several bugs in MemoryFolder and SystemFolder regarding overwrite behavior.
[Improvements]
Updated downstream NuGet packages
Wrote basic CommonTests for IModifiableFolder
--- 0.5.1 ---
[Fixes]
Fixed an issue in MemoryFolder and SystemFolder where calling CreateFileAsync and CreateFolderAsync with overwrite set to false wouldn't return an existing storable.
--- 0.5.0 ---
THIS IS A BREAKING RELEASE
Update asap, and do not use older versions.
[Breaking]
Items in a folder always have a parent, so they're always addressable. We've updated the interfaces and inbox implementations to reflect this.
IFolder.GetItemsAsync() now returns IAddressableStorable instead of IStorable.
IModifiableFolder.CreateCopyOfAsync now returns IAddressableFile instead of IFile.
IModifiableFolder.MoveFromAsync now returns IAddressableFile instead of IFile.
IModifiableFolder.MoveFromAsync now takes IAddressableFile instead of IFile as the first parameter.
IModifiableFolder.CreateFileAsync now returns IAddressableFile instead of IFile.
IModifiableFolder.CreateFolderAsync now returns IAddressableFolder instead of IFolder.
IModifiableFolder.DeleteAsync now takes IAddressableStorable instead of IStorable as the first parameter.
--- 0.4.0 ---
THIS IS A BREAKING RELEASE
Update asap, and do not use older versions.
[Breaking]
IAddressableStorable.GetParentAsync() now returns IFolder? instead of IAddressableFolder?. Any type of folder could yield an IAddressableStorable, so we've made sure the parent of any IAddressableStorable can be any type of folder.
To migrate, simply change the return type of IAddressableStorable.GetParentAsync() to IFolder? in your implementations. No other changes are required.
--- 0.3.2 ---
[Fixes]
Fixed SystemFolder not extracting the folder name from the path correctly.
Fixed SystemFile.OpenStreamAsync failing when call on a file returned from System.CreateFileAsync
Fixed an issue with SystemFileWatcher where it couldn't reliably determine if an arbitrary path is a File or a Folder.
--- 0.3.1 ---
[Fixes]
Fixed a crash that may occur when calling SystemFolder.CreateCopyOfAsync, when the stream of the file being copied doesn't support seeking.
--- 0.3.0 ---
[New]
Added MemoryFile and MemoryFolder under OwlCore.Storage.Memory.
--- 0.2.0 ---
THIS IS A BREAKING RELEASE.
Update asap, and do not use older versions.
We will switch to pure semver2.0 once a stable 1.0.0 released is made.
[Breaking]
Due to the wildly different strategies that could be used for generic recursive folder moving/copying, IModifiableFolder.CreateCopyOfAsync and IModifiableFolder.MoveFromAsync now exclusively handle files. This may be added back later as a fast-path interface + extension method.
A new property has been added to the IFolderWatcher interface. Supplying the folder which is being observed is now a requirement. The "sender" in the INotifyCollectionChanged handler should be the watcher instead of the folder, meaning the folder can't be accessed from event handlers unless the watcher supplies it.
[New]
OwlCore.Storage.SimpleStorableItem has been added, a minimum possible implementation of IStorable. This is useful in scenarios when you need to identify a resource but shouldn't supply any access to it, such as when a file or folder is removed.
We've started adding inbox interface implementations, starting with System.IO, under the namespace OwlCore.Storage.SystemIO.
--- 0.1.0 ---
[New]
Added all missing interfaces and extension methods from proposal.
--- 0.0.0 ---
[New]
Initial release of OwlCore.Storage.