diff --git a/DiskAccessLibrary.FileSystems.Abstractions/DiskAccessLibrary.FileSystems.Abstractions.VS2005.csproj b/DiskAccessLibrary.FileSystems.Abstractions/DiskAccessLibrary.FileSystems.Abstractions.VS2005.csproj
new file mode 100644
index 0000000..0a41fef
--- /dev/null
+++ b/DiskAccessLibrary.FileSystems.Abstractions/DiskAccessLibrary.FileSystems.Abstractions.VS2005.csproj
@@ -0,0 +1,47 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}
+ Library
+ Properties
+ DiskAccessLibrary.FileSystems.Abstractions
+ DiskAccessLibrary.FileSystems.Abstractions
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DiskAccessLibrary.FileSystems.Abstractions/DiskAccessLibrary.FileSystems.Abstractions.csproj b/DiskAccessLibrary.FileSystems.Abstractions/DiskAccessLibrary.FileSystems.Abstractions.csproj
new file mode 100644
index 0000000..e59ed0d
--- /dev/null
+++ b/DiskAccessLibrary.FileSystems.Abstractions/DiskAccessLibrary.FileSystems.Abstractions.csproj
@@ -0,0 +1,19 @@
+
+
+
+ net20;net40;netstandard2.0
+ false
+ DiskAccessLibrary.FileSystems.Abstractions
+ 1.0.0
+ 1573;1591
+ DiskAccessLibrary.FileSystems.Abstractions
+ false
+ Tal Aloni
+ DiskAccessLibrary abstractions and interfaces for FileSystem implementations
+ LGPL-3.0-or-later
+ https://github.com/TalAloni/DynamicDiskPartitioner
+ https://github.com/TalAloni/DynamicDiskPartitioner
+ true
+
+
+
diff --git a/Utilities/IFileSystem/FileSystem.cs b/DiskAccessLibrary.FileSystems.Abstractions/FileSystem.cs
similarity index 96%
rename from Utilities/IFileSystem/FileSystem.cs
rename to DiskAccessLibrary.FileSystems.Abstractions/FileSystem.cs
index 73b0f51..8f29d38 100644
--- a/Utilities/IFileSystem/FileSystem.cs
+++ b/DiskAccessLibrary.FileSystems.Abstractions/FileSystem.cs
@@ -7,9 +7,8 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Text;
-namespace Utilities
+namespace DiskAccessLibrary.FileSystems.Abstractions
{
public abstract class FileSystem : IFileSystem
{
diff --git a/Utilities/IFileSystem/FileSystemEntry.cs b/DiskAccessLibrary.FileSystems.Abstractions/FileSystemEntry.cs
similarity index 92%
rename from Utilities/IFileSystem/FileSystemEntry.cs
rename to DiskAccessLibrary.FileSystems.Abstractions/FileSystemEntry.cs
index 7acce05..56e042d 100644
--- a/Utilities/IFileSystem/FileSystemEntry.cs
+++ b/DiskAccessLibrary.FileSystems.Abstractions/FileSystemEntry.cs
@@ -5,11 +5,8 @@
* either version 3 of the License, or (at your option) any later version.
*/
using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-namespace Utilities
+namespace DiskAccessLibrary.FileSystems.Abstractions
{
public class FileSystemEntry
{
diff --git a/Utilities/IFileSystem/IFileSystem.cs b/DiskAccessLibrary.FileSystems.Abstractions/IFileSystem.cs
similarity index 96%
rename from Utilities/IFileSystem/IFileSystem.cs
rename to DiskAccessLibrary.FileSystems.Abstractions/IFileSystem.cs
index bf83fed..14f6e9d 100644
--- a/Utilities/IFileSystem/IFileSystem.cs
+++ b/DiskAccessLibrary.FileSystems.Abstractions/IFileSystem.cs
@@ -8,7 +8,7 @@ using System;
using System.Collections.Generic;
using System.IO;
-namespace Utilities
+namespace DiskAccessLibrary.FileSystems.Abstractions
{
public interface IFileSystem
{
diff --git a/DiskAccessLibrary.FileSystems.Abstractions/Properties/AssemblyInfo.cs b/DiskAccessLibrary.FileSystems.Abstractions/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e9a83e4
--- /dev/null
+++ b/DiskAccessLibrary.FileSystems.Abstractions/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("DiskAccessLibrary.FileSystems.Abstractions")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Tal Aloni")]
+[assembly: AssemblyProduct("DiskAccessLibrary.FileSystems.Abstractions")]
+[assembly: AssemblyCopyright("Copyright © Tal Aloni 2012-2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e71e5d6b-84ac-4889-810a-d18c2f6fbcbe")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.Query.cs b/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.Query.cs
index d65fd84..25696ae 100644
--- a/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.Query.cs
+++ b/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.Query.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using DiskAccessLibrary.FileSystems.Abstractions;
using Utilities;
namespace SMBLibrary
diff --git a/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.QueryDirectory.cs b/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.QueryDirectory.cs
index 8abf528..51a33c1 100644
--- a/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.QueryDirectory.cs
+++ b/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.QueryDirectory.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using DiskAccessLibrary.FileSystems.Abstractions;
using Utilities;
namespace SMBLibrary
diff --git a/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.cs b/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.cs
index e1d1f77..32a93e8 100644
--- a/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.cs
+++ b/SMBLibrary/NTFileStore/Adapter/NTFileSystemAdapter.cs
@@ -5,8 +5,8 @@
* either version 3 of the License, or (at your option) any later version.
*/
using System;
-using System.Collections.Generic;
using System.IO;
+using DiskAccessLibrary.FileSystems.Abstractions;
using Utilities;
namespace SMBLibrary
diff --git a/SMBLibrary/SMBLibrary.VS2005.csproj b/SMBLibrary/SMBLibrary.VS2005.csproj
index 2980487..093b96c 100644
--- a/SMBLibrary/SMBLibrary.VS2005.csproj
+++ b/SMBLibrary/SMBLibrary.VS2005.csproj
@@ -597,6 +597,10 @@
+
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}
+ DiskAccessLibrary.FileSystems.Abstractions.VS2005
+
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}
Utilities
diff --git a/SMBLibrary/SMBLibrary.csproj b/SMBLibrary/SMBLibrary.csproj
index 724680f..f2afec4 100644
--- a/SMBLibrary/SMBLibrary.csproj
+++ b/SMBLibrary/SMBLibrary.csproj
@@ -15,6 +15,7 @@
+
diff --git a/SMBLibrary/Server/Shares/FileSystemShare.cs b/SMBLibrary/Server/Shares/FileSystemShare.cs
index d5c3b0f..cd65fdd 100644
--- a/SMBLibrary/Server/Shares/FileSystemShare.cs
+++ b/SMBLibrary/Server/Shares/FileSystemShare.cs
@@ -5,9 +5,8 @@
* either version 3 of the License, or (at your option) any later version.
*/
using System;
-using System.Collections.Generic;
using System.IO;
-using Utilities;
+using DiskAccessLibrary.FileSystems.Abstractions;
namespace SMBLibrary.Server
{
diff --git a/SMBLibrary/Server/Shares/SMBShareCollection.cs b/SMBLibrary/Server/Shares/SMBShareCollection.cs
index f09130e..62ad016 100644
--- a/SMBLibrary/Server/Shares/SMBShareCollection.cs
+++ b/SMBLibrary/Server/Shares/SMBShareCollection.cs
@@ -6,8 +6,7 @@
*/
using System;
using System.Collections.Generic;
-using System.Text;
-using Utilities;
+using DiskAccessLibrary.FileSystems.Abstractions;
namespace SMBLibrary.Server
{
diff --git a/SMBServer.VS2005.sln b/SMBServer.VS2005.sln
index 07a582b..ad3bff0 100644
--- a/SMBServer.VS2005.sln
+++ b/SMBServer.VS2005.sln
@@ -1,15 +1,17 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utilities", "Utilities\Utilities.VS2005.csproj", "{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiskAccessLibrary.FileSystems.Abstractions.VS2005", "DiskAccessLibrary.FileSystems.Abstractions\DiskAccessLibrary.FileSystems.Abstractions.VS2005.csproj", "{9119EC7E-AF78-4814-BF03-F3823A29A471}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary", "SMBLibrary\SMBLibrary.VS2005.csproj", "{8D9E8F5D-FD13-4E4C-9723-A333DA2034A7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utilities.VS2005", "Utilities\Utilities.VS2005.csproj", "{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Win32", "SMBLibrary.Win32\SMBLibrary.Win32.VS2005.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.VS2005", "SMBLibrary\SMBLibrary.VS2005.csproj", "{8D9E8F5D-FD13-4E4C-9723-A333DA2034A7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBServer", "SMBServer\SMBServer.VS2005.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Win32.VS2005", "SMBLibrary.Win32\SMBLibrary.Win32.VS2005.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Tests", "SMBLibrary.Tests\SMBLibrary.Tests.VS2005.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBServer.VS2005", "SMBServer\SMBServer.VS2005.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Tests.VS2005", "SMBLibrary.Tests\SMBLibrary.Tests.VS2005.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -17,6 +19,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Release|Any CPU.Build.0 = Release|Any CPU
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/SMBServer.VS2019.sln b/SMBServer.VS2019.sln
index 17b4518..7d022e6 100644
--- a/SMBServer.VS2019.sln
+++ b/SMBServer.VS2019.sln
@@ -3,15 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29728.190
MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiskAccessLibrary.FileSystems.Abstractions", "DiskAccessLibrary.FileSystems.Abstractions\DiskAccessLibrary.FileSystems.Abstractions.csproj", "{9119EC7E-AF78-4814-BF03-F3823A29A471}"
+EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Utilities", "Utilities\Utilities.csproj", "{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary", "SMBLibrary\SMBLibrary.csproj", "{8D9E8F5D-FD13-4E4C-9723-A333DA2034A7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Win32", "SMBLibrary.Win32\SMBLibrary.Win32.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBServer", "SMBServer\SMBServer.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBServer", "SMBServer\SMBServer.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Tests", "SMBLibrary.Tests\SMBLibrary.Tests.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Tests", "SMBLibrary.Tests\SMBLibrary.Tests.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -19,6 +21,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9119EC7E-AF78-4814-BF03-F3823A29A471}.Release|Any CPU.Build.0 = Release|Any CPU
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/Utilities/Utilities.VS2005.csproj b/Utilities/Utilities.VS2005.csproj
index d80b2e8..8fe889d 100644
--- a/Utilities/Utilities.VS2005.csproj
+++ b/Utilities/Utilities.VS2005.csproj
@@ -51,9 +51,6 @@
-
-
-