Releases: ITHit/UserFileSystemSamples
Releases · ITHit/UserFileSystemSamples
v6.0.16872.0-Beta
- Now you can set number of concurrent requests to the remote storage using Engine.MaxConcurrentRequests property. Number of concurrent requests is now set to 6 in WebDAV Drive sample by default.
- The EngineWindows.ShellExtensionsComServerRpcEnabled property is provided to enable/disable gRpc channel for shell extension handlers. If you are using RPC shell extension handlers in the external COM exe server, you must explicitly set this property to true.
- New hydration methods added to the PlacholderFile class: TryHydrate(), TryDehydrate(), TryHydrationRequired(), TryDehydrationRequired(). Refactored Hydrate(), Dehydrate(), HydrationRequired(), DehydrationRequired() methods, removed in v5.6 release are now made public.
- PlaceholderItem.TryGetState() method added. PlaceholderItem.GetState() method, removed in v5.6 release is now made public.
- AccessViolationException was thrown when app was running with identity under heavy load. Now this bug is fixed.
- Shell extensions did not register when WebDAV Drive and Virtual Drive samples were running without identity. Now this bug is fixed. Samples can now be configured to run without identity by commenting-out sparse package registration.
- Sample sync root registration code and sparse package registration code refactored.
v5.6.16439.0
- Performance of creating files/folder in Outgoing Sync and User File System monitor improved. Items were created by a single thread. “Parent item not synced yet” message in debug mode was logged. Now items are created in parallel threads.
- If StorageProviderItemProperty.IconResource or StorageProviderItemProperty.Value properties are empty - Windows Explorer crashes. This bug is now fixed.
- iconsFolderPath parameter removed in CustomStateHandlerIntegratedBase constructor.
v5.6.16427.0
- If a IFolderMetadata item does not contain FileAttribute.Directory attribute when passed to IFolderListingResultContext.ReturnChildrenAsync(), the item did not delete. The item type is detected incorrectly. Now the item type is detected properly regardless of the FileAttribute.Directory attribute set on creation.
- In WebDAV Drive sample, it the item is not found in the remote storage (already deleted) the sample code always sets the resultContext.SetInSync = false causing the Engine to repeat the detele operation. Now this bug is fixed.
- Tray app in WebDAV Drive sample now properly reflects synchronizing and paused state. Tray application fixed and refactored.
v5.6.16415.0
- Upload created folders with offline attribute (with cloud icon). Now the folders are created without offline attribute (with green checkbox on white background).
- Sync status did not refresh after folders upload. Now the folder status is refreshed after the upload.
- If IFileSystemItem.GetPropertiesAsync() returns FileSystemItemPropertyData with empty value, Windows Explorer crushes. Now the empty or null vaues are replaced with "n/a".
- Lock state icon does not refresh in Windows Explorer in WebDAV Drive sample after the item is locked or unlocked. Now the icon is properly refreshed.
- If thumbnail IFileSystemItem.GetThumbnailAsync() throw NotImplementedException the error "Thumbnail for is not implemnted" was logged. Now the debug message is logged.
v5.6.16382.0
- IFolder.GetChildrenAsync() is called on every app start, including if the sample app was exited with Spacebar ("Reboot" scenario). Registrar.IsRegisteredAsync() method always returned false, causing every sample app start registering file system. Now this bug is fixed.
- If exception parameter was not specified in ILogger.LogError() method call, the sample code did not log the error. This bug is now fixed.
- If EngineWindows is disposed without stopping the engine, the synchronization service did not stop, causing exceptions. This bug is now fixed.
- IOException The file already exists may be thrown by Virtual File System Sample and Virtual Drive sample in IFolder.CreateFileAsync() and IFolder.CreateFolderAsync() methods when deleting items if parent is moved to the recycle bin while Engine was still processing the item. Now such items are ignored.
- "The engine must be running" exception may be thrown by the Engine when stopping. This bug is now fixed.
- IOException "Can not create because the file or directory with the same name already exsts." can be thrown when calling IFolderListingResultContext.ReturnChildrenAsync() in Virtual File System and Virtual Drive samples if the directory is deleted in the remote storage while the listing is performed. This bug is now fixed.
- "Missing item failed to save" FileNotFoundException: The system cannot find the file specified. (0x80070002) error may be thrown when deleting items. This bug is now fixed.
- UnautorizedAccessException: "Access is denied" may be thrown when deleting an item and the parent folder is deleted before the child item. This bug is now fixed.
- "Getting deleted folder failed" DirectoryNotFoludException may be thrown during delete. Now this bug is fixed.
- Outgoing Sync service did not stop on Engine.StopAsync() call. This bug is now fixed.
- Attributes parameter is removed from IEngine.FilterAsync() method.
- TimeSpan formatting unified in logging.
- LocalServer class is moved to ITHit.FileSystem.Windows.ShellExtension namespace.
v5.6.16274.0-Beta2
- Folders with 8 characters may fail to delete if MsOfficeFilter is applied. The IFileSystemItem.DeleteCompletionAsync() is not called. This bug is now fixed.
- IEngine.FilterAsync() now provides FileSystemItemType parameter.
- FileNotFoundException may be thrown in IFileSystemItem.GetLockModeAsync() method implementation during deletion in Virtual Drive and WebDAV Drive samples. This bug is now fixed.
- AutoCAD filter did not filter .dwl and .dwl2 files. This bug is now fixed.
v5.6.16262.0-Beta2
- Context menu performance improved.
- PlaceholderItem.UpdateUI() method provided to refresh Windows Explorer user interface.
- Sparse package startup sequence refactored. Developer certificate installation and uninstall sequence refactored.
v5.6.15918.0-Beta2
- Context menu on MacOS is now supported.
- New shell extension handler classes provided to run handlers in one process with the Engine: ThumbnailProviderHandlerIntegratedBase, CloudFilesContextMenuVerbIntegratedBase and CustomStateHandlerIntegratedBase classes provided. Virtual Drive and WebDAV Drive Samples updated to run shell extension handlers in one process with the main application.
- ZipFilter is provided. Now zip archiver is supported.
- Microsoft Excel and PowerPoint filters improved.
- Filtering refactored. Now both client to server sync and server to client operations are anow filtered in IEngine.FilterAsync() method.
- Microsoft Office / AutoCAD documents editing is now supported in Virtual File System sample and is supported both in remote storage and in user file system in all samples.
- Lock and Unlock commands in Virtual Drive and WebDAV Drive samples did not refresh status icons in the Windows Explorer. This bug is now fixed.
- ProcessAsync() erronously called IFileSystemItem.DeleteAsync()/MoveToAsync() methods before DeleteCompletionAsync()/MoveToCompletionAsync(). As soon as the delete/move operation can be canceled only if the Engine is running, now the DeleteCompletionAsync()/MoveToCompletionAsync() methods are only called from ProcessAsync().
- Incorrect operation type of OperationType.Delete was passed to FilterAsync() on DeleteCompletionsAsync() call. Now the correct OperationType.DeleteCompletion type is passed.
- The Win32Exception 0x80004005 "The cloud file metadata is corrupt and unreadable" may be thrown if the placeholder did not complete saving. This bug is now fixed.
- Create or update failed. DirectoryNotFoundException "The system can not find the path specified." error may be thrown on delete. This bug is now fixed.
- "Get moved item failed" Win32Exception "The cloud operation is invalid" can be thrown during synchronization. This bug is now fixed.
- Dehydration may throw exceptions if called for new files. This bug is now fixed.
v5.5.15752.0-Beta2
- Thumbnails on MacOS are now supported.
- Replacing GetPathByItemId() with TryGetPathByItemId() in Virtual File System and Virtual Drive sample.
v5.0.15216.0-Beta
- UnauthorizedAccessException 'Access to the path..' is denied exception during delete. This bug is now fixed.
- If 0-lenght file failed to set in-sync on creation, the file did not se in-sync at any later time in ProcessAsync() method. This bug is now fixed.
- EngineWindows.ProcessAsync() moved to EngineWindows.SyncService.Outgoing.ProcessAsync().
- IServerNotifications methods now do not update items if create/update/delate/move operation is in progress.
- PlaceholderItem.SetMetadataAsync() and IServerNotifications.UpdateAsync() methods now provide autoHydration parameter.