Skip to content

Commit 39008a8

Browse files
committed
v5.5.15752.0-Beta2
1 parent 1a5b7d7 commit 39008a8

File tree

4 files changed

+264
-4
lines changed

4 files changed

+264
-4
lines changed

README.md

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,50 @@
1-
��
1+
2+
<h1>User-mode File System Examples for Windows and macOS in .NET/C#</h1>
3+
<div class="description"></div>
4+
<ul class="list">
5+
<li>
6+
<a class="link-header" href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/VirtualFileSystem">
7+
<h2>Virtual File System Sample in .NET, C#</h2>
8+
</a>
9+
10+
<a href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/VirtualFileSystem">
11+
<p>
12+
This sample implements a virtual file system with synchronization support, on-demand loading,&nbsp;selective offline files support, upload and download progress, and error reporting. It synchronizes files and folders both from remote storage to the user f <span>...</span>
13+
</p>
14+
</a>
15+
</li>
16+
<li>
17+
<a class="link-header" href="https://github.com/ITHit/UserFileSystemSamples/tree/master/macOS">
18+
<h2>Virtual File System Sample for Mac in .NET, C#</h2>
19+
</a>
20+
21+
<a href="https://github.com/ITHit/UserFileSystemSamples/tree/master/macOS">
22+
<p>
23+
This sample implements a virtual file system for Mac with synchronization support and folders on-demand listing.&nbsp;It synchronizes files and folders both from remote storage to the user file system and from the user file system to remote storage. This <span>...</span>
24+
</p>
25+
</a>
26+
</li>
27+
<li>
28+
<a class="link-header" href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/VirtualDrive/">
29+
<h2>Virtual Drive Sample in .NET, C#</h2>
30+
</a>
31+
32+
<a href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/VirtualDrive/">
33+
<p>
34+
This is a virtual drive implementation with thumbnail support, Microsoft Office and AutoCAD documents editing support, and automatic Microsoft Office/AutoCAD documents locking. It also demonstrates custom column support in Windows File Manager.&nbsp;To si <span>...</span>
35+
</p>
36+
</a>
37+
</li>
38+
<li>
39+
<a class="link-header" href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/WebDAVDrive/">
40+
<h2>WebDAV Drive Sample in .NET, C#</h2>
41+
</a>
42+
43+
<a href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/WebDAVDrive/">
44+
<p>
45+
This sample implements a virtual file system that displays documents from a WebDAV server. You can edit documents, upload and download documents as well as manage folders structure using Windows File Manager. This sample provides automatic documents <span>...</span>
46+
</p>
47+
</a>
48+
</li>
49+
</ul>
50+

Windows/VirtualDrive/README.md

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,63 @@
1-
��
1+
2+
<h1 class="d-xl-block d-none">Virtual Drive Sample in .NET, C#</h1>
3+
<p>This is a virtual drive implementation with thumbnail support, Microsoft Office and AutoCAD documents editing support, and automatic Microsoft Office/AutoCAD documents locking. It also demonstrates custom column support in Windows File Manager.&nbsp;To simulate the remote storage, this sample is using a folder in the local file system on the same machine.&nbsp;This sample supports all basic synchronization features provided by the <a title="Virtual File System Sample for Windows" href="https://www.userfilesystem.com/examples/virtual_file_system/">Virtual File System</a> sample: folders&nbsp;on-demand listing, files on-demand content loading, selective offline files support, hydration progress. The sample is written in C#/.NET.</p>
4+
<p><span>You can download this sample and a trial license in the&nbsp;</span><a title="Download" href="https://www.userfilesystem.com/download/">product download area</a>&nbsp;as well as you can clone it from<span>&nbsp;</span><a title="Virtual Drive Sample in .NET, C#" href="https://github.com/ITHit/UserFileSystemSamples/tree/master/Windows/VirtualDrive">GitHub</a><span>.&nbsp;</span></p>
5+
<p><span class="warn">This sample is provided with IT Hit User File System v3 Beta and later versions.</span></p>
6+
<h2 class="heading-link" id="nav_requirements">Requirements<a class="list-link d-inline" href="https://www.userfilesystem.com/examples/virtual_file_system/#nav_requirements"></a></h2>
7+
<ul>
8+
<li>.NET Core 5.0 or later or .NET Framework 4.8.</li>
9+
<li>Microsoft Windows 10 Creators Update or later version.</li>
10+
<li>NTFS file system.</li>
11+
</ul>
12+
<h2 class="heading-link" id="nav_configuringthesample">Configuring the Sample<a class="list-link d-inline" href="https://www.userfilesystem.com/examples/virtual_file_system/#nav_configuringthesample"></a></h2>
13+
<p>By default, the sample will use the&nbsp;<span class="code">\RemoteStorage\</span>&nbsp;folder, located under the project root, to simulate the remote storage file structure. It will mount the user file system under the&nbsp;<span class="code">%USERPROFILE%\VFS\</span>&nbsp;folder (typically&nbsp;<span class="code">C:\Users\&lt;username&gt;\VirtualDrive\</span>).</p>
14+
<p>To specify the folder that will be used for remote storage simulation edit the&nbsp;<span class="code">"RemoteStorageRootPath"</span>&nbsp;parameter in&nbsp;<span class="code">appsettings.json</span>. This could be either an absolute path or a path relative to the application root.</p>
15+
<p>To specify the user file system folder edit the&nbsp;<span class="code">"UserFileSystemRootPath"</span>&nbsp;parameter&nbsp;in&nbsp;<span class="code">appsettings.json</span>.</p>
16+
<h2 class="heading-link" id="nav_settingthelicense">Setting the License<a class="list-link d-inline" href="https://www.userfilesystem.com/examples/virtual_file_system/#nav_settingthelicense"></a></h2>
17+
<p>To run the example, you will need a valid IT Hit User File System Engine for .NET License. You can download the license in&nbsp;the&nbsp;<a title="IT Hit User File System for .NET Download" href="https://www.userfilesystem.com/download/">product download area</a>.&nbsp;Note that the Engine is fully functional with a trial license and does not have any limitations. The trial license is valid for one month and the engine will stop working after this. You can check the expiration date inside the license file.&nbsp;Download the license file and specify its content in the&nbsp;<span class="code">UserFileSystemLicense</span>&nbsp;field in&nbsp;<span class="code">appsettings.json</span>&nbsp;file.&nbsp;Set the license content directly as a value (NOT as a path to the license file). Do not forget to escape quotes: \":</p>
18+
<pre class="brush:xml;auto-links:false;toolbar:false">"UserFileSystemLicense": "&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;License…</pre>
19+
<p>You can also run the sample&nbsp;without explicitly specifying a license&nbsp;for 5 days. In this case,&nbsp;the&nbsp;Engine will automatically request the trial license from the IT Hit website https://www.userfilesystem.com. Make sure it is accessible via firewalls if any. After 5 days the Engine will stop working. To extend the trial period you will need to download a license in a&nbsp;<a title="IT Hit User File System for .NET Download" href="https://www.userfilesystem.com/download/">product download area</a>&nbsp;and specify it in&nbsp;<span class="code">appsettings.json</span></p>
20+
<h2 class="heading-link" id="nav_runningthesample">Running the Sample<a class="list-link d-inline" href="https://www.userfilesystem.com/examples/virtual_file_system/#nav_runningthesample"></a></h2>
21+
<p>To run the sample open the project in Visual Studio and run the project in debug mode. When starting in the debug mode, it will automatically create a folder in which the virtual file system will reside, register the virtual drive with the platform and then open&nbsp;two instances of Windows File Manager, one of which will show a virtual drive and another a folder simulating remote storage.&nbsp;</p>
22+
<p>You can find more about running and stopping the sample as well as about basic synchronization features in the&nbsp;<a title="Virtual File System Sample for Windows" href="https://www.userfilesystem.com/examples/virtual_file_system/">Virtual File System</a>&nbsp;sample description.&nbsp;</p>
23+
<h2>Packaging Project</h2>
24+
<p><span class="warn">Starting with IT Hit User File System v5 Beta, the VirtualDrive project supports identity and provides&nbsp;the same functionality as VirtualDrive.Packaging project. Starting VirtualDrive project directly registers thumbnails handler shell extension, context menu handler and custom states &amp; columns handler.</span></p>
25+
<p>This sample provides a Windows Application Packaging Project which allows deployment of your application to the Windows Store, simplifies COM components debugging (thumbnails handler and Windows Explorer context menu), as well as your application can be installed without admin privileges. The&nbsp;package can be also used for direct&nbsp;<a href="https://www.youtube.com/watch?v=fJkbYPyd08w&amp;t=73s">deployment to users</a>.</p>
26+
<p>To start the project with thumbnails and context menu support follow these steps:</p>
27+
<ol>
28+
<li>Set the packaging project as your startup project.</li>
29+
<li>Set the VirtualDrive project under the packaging project as an Entry Point.</li>
30+
</ol>
31+
<p>Run the project from Visual Studio. This will automatically register COM components as well as you can start debugging COM components without additional steps.</p>
32+
<p>The packaging project will also perform an automatic cleanup on uninstall. Your sync root registration will be automatically unregistered, folders created by the application will be deleted as well as all COM components unregistered.&nbsp;</p>
33+
<h2>Shell Extensions Support</h2>
34+
<p>This sample provides thumbnails handler, context menu handler and custom states and properties handler.&nbsp;<span>All handlers are registered as an application extension by the packing project provided with the sample or as a sparse package of the main application. To register thumbnails you will simply run either VirtualDrive project directly or the packaging project. You do NOT need to register the handlers using regsrv32 or any using any other COM registration technique.</span></p>
35+
<p><span>The COM handlers are automatically unregistered on package uninstall, you do not need to unregister them manually.</span></p>
36+
<h3>Thumbnails Support</h3>
37+
<p><span>The Virtual Drive sample provides <a title="Creating Thumbnails Provider" href="https://www.userfilesystem.com/programming/creating_thumbnails_provider/">thumbnail provider shell extension implementation</a> in the COM object. It loads thumbnails from files located in the remote storage simulation folder and displays them in Windows Explorer. You will adapt the code to load thumbnails from your real remote storage.</span></p>
38+
<p><img id="__mcenew" alt="Virtual Drive thumbnails support in Windows Explorer" src="https://www.userfilesystem.com/media/2147/windowsexplorerthumbnailsmode.png" rel="123092"></p>
39+
<h3>Context Menu Support</h3>
40+
<p>This sample provides a context menu provider that implements lock and unlock commands:</p>
41+
<p><img id="__mcenew" alt="Virtual drive context menu handler provider" src="https://www.userfilesystem.com/media/2182/virtualdrivecustomcontextmenuhandler.png" rel="123964"></p>
42+
<p>See more details on on implementing and registering context menu in the&nbsp;<a title="Creating Context Menu" href="https://www.userfilesystem.com/programming/creating_context_menu/">Creating Custom Windows Explorer Context Menu Shell Extension</a> article.</p>
43+
<h3>Window File Manger Custom States &amp; Columns Support</h3>
44+
<p><span>This sample registers and displays custom states &amp; columns in Windows File Manager. For demo purposes the Registrar class adds ETag column as well as columns that show information about the lock: Lock Owner, Lock Scope, Lock Expires:</span></p>
45+
<p><span>&nbsp;&nbsp;<img id="__mcenew" alt="Virtual Drive custom columns being displayed in Windows File Manger" src="https://www.userfilesystem.com/media/2132/customcolumnswindowsfilemanager.png" rel="122440"></span></p>
46+
<p>See more information about how to program and register the custom states and columns handler in&nbsp;<a title="Creating States &amp; Columns Provider" href="https://www.userfilesystem.com/programming/creating_custom_states_columns_provider/">Creating Custom States and Columns Provider Shell Extension for Virtual Drive</a><span>&nbsp;</span>article.</p>
47+
<h2>Microsoft Office and AutoCAD Files Editing Support</h2>
48+
<p>Another major difference between the Virtual Drive sample and the <a title="Virtual File System Sample for Windows" href="https://www.userfilesystem.com/examples/virtual_file_system/">Virtual File System</a> sample is its support for Microsoft Office and AutoCAD document editing. This sample<span>&nbsp;supports synchronization of the MS Office/AutoCAD documents, avoiding the creation of the temporary files in the remote storage as well as it does not rename or delete the document in your remote storage during MS Office/AutoCAD transactional save operation, preserving all data associated with a file in your remote storage.</span></p>
49+
<p><span>This sample automatically locks the Microsoft Office and AutoCAD document in the remote storage when a document is being opened for editing and automatically unlocks the document when the file is closed. When the document is opened you will see the lock icon&nbsp;<img id="__mcenew" alt="Lock icon" src="https://www.userfilesystem.com/media/2071/locked.png" rel="120785"> in the Status column in Windows File Manager:</span></p>
50+
<p><span>&nbsp;<img id="__mcenew" alt="Virtual Drive sample shows lock icon for Microsoft Office documents" src="https://www.userfilesystem.com/media/2133/virtualdrivemsoffice.png" rel="122441"></span></p>
51+
<p><span>The information about the lock (lock-token, etc.) is being saved on the client machine when the document is locked.</span>&nbsp;When a document is modified on the client,&nbsp;all changes are sent to the remote storage, together with the lock-token and eTag.&nbsp;</p>
52+
<p><span>Any temporary Microsoft Office and AutoCAD documents (~$docfile.docx, G57BURP.tmp, etc) are stored in the local file system only and are NOT synchronized to the server. Temporary Microsoft Office/AutoCAD documents are being automatically deleted by Microsoft Office/AutoCAD when the document editing is completed.</span></p>
53+
<p>&nbsp;</p>
54+
<h2>See also:</h2>
55+
<ul>
56+
<li><a title="Creating Thumbnails Provider" href="https://www.userfilesystem.com/programming/creating_thumbnails_provider/">Creating Thumbnails Provider Shell Extension</a></li>
57+
<li><a title="Creating Context Menu" href="https://www.userfilesystem.com/programming/creating_context_menu/">Creating Custom Windows Explorer Context Menu Shell Extension</a></li>
58+
<li><a title="Creating States &amp; Columns Provider" href="https://www.userfilesystem.com/programming/creating_custom_states_columns_provider/">Creating Custom States and Columns Provider Shell Extension</a></li>
59+
</ul>
60+
<p>&nbsp;</p>
61+
<h3 class="para d-inline next-article-heading">Next Article:</h3>
62+
<a title="WebDAV Drive Sample in .NET, C#" href="https://www.userfilesystem.com/examples/webdav_drive/">WebDAV Drive Sample in .NET, C#</a>
63+

0 commit comments

Comments
 (0)