Skip to content

Releases: ITHit/UserFileSystemSamples

v6.1.17328.0-Beta

22 Aug 13:03
Compare
Choose a tag to compare
  • Item conflict status can now be set on Windows. SetErrorStatus(), TrySetErrorStatus(), GetErrorStatus() and TryGetErrorStatus() methods added to PlaceholderItem class. The status can propagate to upper folder levels in Windows Explorer.
  • If client and server eTags do not match, the WebDAV Drive sample can now display conflict icon in Status column.
  • If the StorageProviderSyncRootInfo.ShowSiblingsAsGroup = true during the root registration, the root item is shown in the not in-sync state. Now the root item is set to in-sync state during EngineWindows.StartAsync() call.
  • Slow performance and thread starvation when creating new items and EngineWindows.MaxTransferConcurrentRequests is set to 2 and OutgoingSync is triggered. Now this bug is fixed.

v6.0.16962.0-Beta

16 Aug 07:43
Compare
Choose a tag to compare
  • Slow performance and thread starvation when creating new items and EngineWindows.MaxTransferConcurrentRequests is set to 1. Now this bug is fixed.

v6.0.16897.0-Beta

12 Aug 11:50
Compare
Choose a tag to compare
  • The create/update/read operations and list/move/delete operations can now be limited separately. The EngineWindows.MaxConcurrentRequests property is now replaced by 2 properties: MaxTransferConcurrentRequests and MaxOperationsConcurrentRequests.
  • Maximum number of concurrent create, update and read requests are now limited by the EngineWindows. MaxTransferConcurrentRequests property and is set to 6 by default.
  • Maximum number of concurrent list, move and delete requests are now limited by the EngineWindows. MaxOperationsConcurrentRequests property and is set to Int.MaxValue by default.
  • Slow hydration and creation performance with EngineWindows.MaxConcurrentRequests property set to default (Int.MaxValue). This bug is now fixed.

v6.0.16872.0-Beta

03 Aug 08:36
Compare
Choose a tag to compare
  • 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

16 Jul 10:33
Compare
Choose a tag to compare
  • 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

14 Jul 10:45
Compare
Choose a tag to compare
  • 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

09 Jul 13:33
Compare
Choose a tag to compare
  • 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

08 Jul 12:02
Compare
Choose a tag to compare
  • 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

06 Jul 07:09
Compare
Choose a tag to compare
  • 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

04 Jul 22:56
Compare
Choose a tag to compare
  • 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.