Skip to content

Releases: ITHit/UserFileSystemSamples

v4.0.10509.0-Beta

12 Oct 18:23
Compare
Choose a tag to compare
  • WebDAV Drive sample now receives "created", "updated", "deleted", "moved", "locked", "unlocked" change notifications from the server via Web sockets.
  • IEngine.FilterAsync() method now has an OperationType parameter. The FilterAsync() implementation is refactored in Virtual Drive and WebDAV Drive samples.
  • IOperationContext optional parameter added to the IEngine.FilterAsync(), ILock.LockAsync(), ILock.UnlockAsync() and ILock.GetLockModeAsync() methods.
  • AutoCAD temp files filter prototype added to Virtual Drive and WebDAV Drive sample. Filtering code moved to Windows Common project.
  • MS Office / AutoCAD sample docs monitor did not dispose of. Now the monitor is properly disposed of.
  • Locking refactored in WebDAV Drive sample.
  • Detetion code in VirtualDrive sample moved from DeleteCompletionAsync() to DeleteAsync().
  • Icons in Lock/Unlock context menu provided in Virtual Drive sample.
  • Deleting ETag or custom columns for folder caused the deletion of all columns, ETags and locks data for underlying folders. Now the ETag or custom columns are properly deleted for the specified folder only.
  • Virtual Drive and Virtual File System samples hydrate the file when a file is added to the remote storage. Now, this bug is fixed.

v4.0.10312.0-Beta

24 Sep 14:52
Compare
Choose a tag to compare
  • Lock/Unlock context menu provided in Virtual Drive sample.
  • The file is left in the not in-sync state after the rename/move operation and is being hydrated. The IFile.WriteAsync() is called after rename/move operation. Now the file is marked as in-sync after the move and is not being hydrated after the move.
  • The folder was left in the not in-sync state after the rename/move operation. Now the folder is marked as in-sync after the rename/move if it was in-sync before rename/move.
  • All samples now use .NET 5.
  • Logging refactored in samples. Now process name is being added to the log.
  • WebDAV Drive sample is now using WebDAV Client Library for .NET 5 Beta.
  • macOS source codes were missing from the source codes version of the archive supplied with the source codes license. Now macOS souce codes are supplied.  
  • Folder move operation to the user file system does not create items in the folder. Now, this bug is fixed.
  • WebDAV Drive sample throws STG_E_ACCESSDENIED exception on files locked by other users. The ExternalDataManager.ShowCustomColumnsAsync() method throws an exception if the method is called on a file with a read-only attribute. This bug is now fixed.
  • IFile.WriteAsync(), IFolder.WriteAsync(), ILogger.LogError() and ILogger.LogMessage() methods now provides optional IOperationContext parameter. EngineErrorEventArgs and EngineMessageEventArgs now provide OperationContext property.
  • The ProcessInfo class was added.
  • The IOperationContext.ItemId property added.
  • The IMoveCompletionContext now inherits IOperationContext.
  • IClientNotifications.GetLockModeAsync() method added.

v4.0.10295.0-Beta

17 Sep 16:36
Compare
Choose a tag to compare
v4.0.10295.0-Beta

v3.3.9602.0

16 Aug 17:32
Compare
Choose a tag to compare
  • An error is displayed in Windows Explorer when a hydrated file is being deleted in Virtual File System sample. The hydrated file is being moved to the recycle bin during the delete operation. The move method implementation is now refactored to avoid moving hydrated files to the recycle bin in Virtual file System sample.
  • The PlaceholderItem.RevertPlaceholder() method is provided to revert the placeholder back to the file/folder.

v3.3.9488.0

02 Aug 21:20
Compare
Choose a tag to compare
  • Thumbnails did not work if Virtual Drive sample deployed as a package. Surrogate COM handler is broken in latest Windows updates. Thumbnails handler now refactored to run as a COM exe server.

v3.2.8936.0

16 Jul 17:05
Compare
Choose a tag to compare
  • Some applications, such as Notpad++, remove the Offline attribute when saving a document, converting a placeholder to a regular file. In Virtual Drive sample the Attributes filter is added to the MsOfficeDocsMonitor class to monitor Changed event and convert the file back to the placeholder.
  • If exception occurred during sample start-up the exception did not log. Now all exceptions that occurred during app start-up are logged.

v3.2.8901.0

30 Jun 23:03
Compare
Choose a tag to compare
  • msix packaging is now supported. The packaging project is added to the Virtual Dive sample.
  • The thumbnails provider in the Virtual Drive sample now runs as a surrogate COM and can be installed/removed without admin privileges as part of the packaged installation. The thumbnails handler can now be debugged running the project directly from Visual Studio.
  • Virtual File System sample refactored. The file/folder ID is now used to link user file system file with remote storage. Mapping.MapPath() function is removed from the sample project.
  • targetParentItemId parameter, representing a new parent folder ID, added to IFileSystemItem.MoveToAsync() method.
  • Item ID is now returned by the IFolder.CreateFileAsync() and IFolder.CreateFolderAsync() methods.
  • Placeholder creation performance improved.
  • Selecting "Always keep on this devise" on a folder that was never enumerated does not load file content. Now, this bug is fixed.
    Virtual File System for macOS sample refactored.

v3.1.7115.0-Beta

09 Jun 09:02
Compare
Choose a tag to compare
  • Item ID support provided. The IEngine.GetFileSystemItemAsync() method now has an itemId parameter. IFileSystemItemMetadata.ItemId property added. PlaceholderItem.GetItemId() method added. The IFolder.CreateFileAsync() and IFolder.CreateFolderAsync() methods now return item ID.
  • PlaceholderItem.SetItemInfo() method renamed to PlaceholderItem.SetMetadata().
  • The CustomDataManager calss in sample code renamed to ExternalDataManager to avoid confusion with IFileSystemItemMetadata.CustomData/PlaceholderItem.GetCustomData().

v3.0.7021.0-Beta

02 Jun 21:26
Compare
Choose a tag to compare
  • Thumbnails implementation is provided in the Virtual Drive sample. The Virtual Drive can now read thumbnails from the remote storage and display them in Windows Explorer in thumbnail mode.
  • FileSystemItemMetadata.CustomData property getter returned incorrect data. Now, this bug is fixed.

v3.0.6973.0-Beta

26 May 17:15
Compare
Choose a tag to compare
  • Virtual File System sample for macOS now supports all file management functionality: remote storage to user file system sync, user file system to remote storage sync, files creation, hydration/dehydration,  deletion, copy, move, etc.
  • Virtual File System sample for Windows refactored and simplified to provide only minimum code required to create a file system with synchronization, on-demand loading, hydration/dehydration.
  • Virtual Drive sample is provided with advanced functionality: Microsoft Office files editing, automatic Microsoft Office documents locking, custom columns/states in Windows File Manger.
  • Virtual File System sample performance improved. The sample folder listing is tested with up to 35K files in a single folder. File hydration is tested up to 30GB per file.
  • New locking interfaces are provided. ILock interface is provided in ITHit.FileSystem.Windows module. EngineWindows.AutoLock property is provided to enable automatic Microsoft Office documents locking.
  • IEngine.FilterAsync() method is provided to avoid synchronization of specified files (typically Microsoft Office temp files) to the remote storage and back.
  • Rename and delete operations can now automatically confirm the operation if no exception is thrown inside the method implementation or reject operation in case of exception.
  • The IEngine.GetFileSystemItemAsync() method now provides FileSystemItemType parameter, indicating if a file or a folder is requested.
  • EngineWindows class now processes hydration/dehydration as well as files and folder creation. No need to create a separate file system monitoring thread.
  • PlaceholderItem class now provides HydrationRequired() and DehydrationRequired() methods.
  • EngineWindows now provides the public StopAsync() method.
  • IFile & IFolder now provides WriteAsync() method.
  • IFolder now provides CreateFileAsync() and CreateFolderAsync() methods.
  • IFile.TransferDataAsync() method is replaced by IFile.ReadAsync() with a stream parameter.
  • IClientNotifications and IClientNotificationsWindows interfaces as well as EngineWindows.ClientNotifications() method is provided. To be called if the file system was not running to process operations and sent to remote storage.
  • IServerNotifications interface and IEngine.ServerNotifications() method is provided for notifying the user file system about changes in the remote storage.
  • If custom data is not specified in FileSystemItemMetadata.CustomData when creating a placeholder, the Win32Exception is thrown "Cloud Operation is invalid". Now, this bug is fixed.
  • Custom columns data was erased when setting the file icon. Now custom data is stored in the external file in the data folder, separately for each file. Custom columns implementation is moved to a new Virtual Drive sample.
  • Files and folders are now only marked as modified when file content is modified or the folder is moved. The StorageProviderSyncRootInfo.InSyncPolicy is now set to StorageProviderInSyncPolicy.Default in Registrar class in samples.
  • New files are now converted to a placeholder only after successful file upload in the sample code.
  • File comparison changed in Virtual Drive and User File System samples. Instead of ETag-LastModifiedDate now file hashes are computed.