Releases: ITHit/UserFileSystemSamples
Releases · ITHit/UserFileSystemSamples
v7.1.23216.0-Beta
- IEngine.GetFileSystemItemAsync() method signature changed. Path parameter removed (path is not available on iOS & macOS). The context parameter added. On Windows platform the path can now be extracted by casting context to IContextWindows.
- IFileSystemItem.MoveToCompletionAsync() and IFileSystemItem.DeleteCompletionAsync() methods moved to the a new IfileSystemItemWindows interface. IFileSystemItem.GetMetadataAsync() moved to a new IFileSystemItemMac interface.
- Drive registration/unregistration code refactored on macOS.
- appsettings.json is now linked in File Provider extension project from Container application project. AppGroupId removed from AppGroupSettings.
- In WebDAV Drive sample on macOS file content was buffered in memory during download (hydration) and upload. Progress does not show on macOS during download. Now this bug is fixed.
- Context menu did not show on macOS. Now this bug is fixed.
- File provider extension did not sign on macOS. Now the extension is properly signed.
- ProcessChangesAsync() call optimized in WebDAV Drive sample for Windows. Now only first and last notifications from server are processed, reducing number of requests to the remote storage.
v7.0.22362.0-Beta
- On Windows platform long file names or long remote storage item ID could cause the ERROR_CLOUD_FILE_METADATA_CORRUPT "The cloud file metadata is corrupt and unreadable." error in some scenarios. This bug is now fixed.
- On Windows platform the Engine passes null to GetFileSystemItemAsync() for rootRemoteStorageItemId parameter instead of actual remote storage ID. This bug is now fixed.
- Engine.Path was readonly. Now this property is read-write.
v7.0.22286.0-Beta
- Long file name name and long remote storage ID combination may cause the ERROR_CLOUD_FILE_METADATA_CORRUPT "The cloud file metadata is corrupt and unreadable." error. This bus is now fixed.
- Default constructor for EngineWindows class is provided.
v7.0.22272.0-Beta
- In WebDAV Drive sample on Windows every notification from remote storage generated GetChangesAsync() call. Now the request to the remote storage is sent only if the item exists in the user file system.
- In WebDAV Drive sample on Windows, if item was deleted when saving properties in ProcessChangesAsync() exception was thrown. Now if item is not found the properties save call is ignored.
- savePropertiesAction parameter in ProcessChangesAsync() is now optional.
- Remote storage ID was not passed during initial call to IEngine.GetFileSystemItemAsync(). Virtual File System sample throw ArgumentNullException "Value can not be null". Now Remote storage ID is properly passed to IEngine.GetFileSystemItemAsync().
- Sync-token initial call was done after connecting transfer callbacks. This could cause listing folder content to be done before initialization of sync-token. Now sync-token is initiated before connecting callbacks.
- Developer certificate supplied with Windows samples updated .
v7.0.22158.0-Beta
- On Windows platform sync-token is now initialized on Engine start if the root folder implements ISynchronizationCollection interface. The Engine calls GetChangesAsync() on first start.
- On Windows platform items were set into conflict state during initial synchronization on WebDAV Drive sample start. Item creation during incoming sync may interfere with same item creation by other threads, such as folder listing. Now if item already exists, the item is not set into a conflict state. The conflict state is determined using eTag during outgoing synchronization.
- On Windows platform IServerCollectionNotifications.ProcessChangesAsync() and IServerNotifications.DeleteAsync() methods deleted not in-sync items (new, moved and updated items). Now if such items are set to conflict state in case of the ProcessChangesAsync() call.
- On Windows platform if item is blocked during deletion by a concurrent thread, the incoming sync did not display conflict icon. Now this bug is fixed.
- On Windows platform, in case item already exists, the incoming sync did not display conflict icon. Now this bug is fixed.
- On Windows platform setting conflict state during move may cause exceptions in IServerCollectionNotifications.ProcessChangesAsync() call if source did not exit. Now this bug is fixed.
- EngineWindows.UninstallCleanupAsync() method is replaced with a path to data storage to be deleted on uninstall, The data storage path is provided in EngineWindows.DataPath property.
- Remote storage monitor in WebDAV Drive sample on Windows did not dispose WebSockets if server is disconnected. Now WebSockets are properly disposedovided sync toke.
- CancellationToken parameter now added to IServerCollectionNotifications.ProcessChangesAsync() and ISynchronizationCollection.GetChangesAsync() methods.
- Logging refactored. IEngine interface does not inherit ILogger any more. ILogger is now available via IEngine.Logger property.
v7.0.22106.0-Beta
- High-performance synchronization based on sync-token algorithm is now implemented in WebDAV Drive sample. Full synchronization (IncomngFullSync class) removed removed from WebDAV Drive sample.
- Class reference provided for ITHit.FileSystem.Mac namespace.
v7.0.22091.0-Beta
- The Engine for macOS (ITHit.FileSystem.Mac) now supports .NET 7.
- Samples for macOS now run on .NET 7.
- Engine.SetRemoteStorageRootItemId() method is now available in both on macOS and Windows platforms.
- Synchronization from remote storage to user file system is now unified between Windows and macOS platforms. Synchronization performance improved.
- Search in the User Files System by Remote Storage ID provided on Windows platform.
- If synchronization from remote storage to user file system failed on Windows platform, the conflict icon is now displayed in Windows Explorer.
- ServerNotifications class is provided on macOS platform. Synchronization on macOS can now be started by calling ServerNotifications.ProcessChangesAsync() method call.
v6.4.21218.0
- COM shell extensions registration sample code refactored.
- Class reference documentation updated.
v6.4.21210.0
- IStorageProviderCopyHook interface is now supported. You can now limit copy, move, delete, hydrate and dehydrate operations on Windows platform by implementing IFolderWindows.GetFolderOperationsAsync().
v6.3.20496.0
- Synchronization based on sync token is now supported on macOS. ISynchronizationCollection interface provided on macOS.
- RemoteStorageParentItemId property is added to IFileSystemItemMetadata interface. Now each item parent on macOS can be properly identified.
- WebDAV Drive sample for macOS displayed an error when a file or folder were moved. The move operation is now fully supported.