Fold System.IO.FileSystem into CoreLib (#53231)
authorAdam Sitnik <adam.sitnik@gmail.com>
Thu, 27 May 2021 10:56:30 +0000 (12:56 +0200)
committerGitHub <noreply@github.com>
Thu, 27 May 2021 10:56:30 +0000 (12:56 +0200)
* move Queue<T> to System.Private.CoreLib

* fold System.IO.FileSystem into System.Private.CoreLib

57 files changed:
src/libraries/Common/src/Interop/Windows/NtDll/Interop.NtQueryInformationFile.cs
src/libraries/Microsoft.IO.Redist/src/Microsoft.IO.Redist.csproj
src/libraries/Microsoft.IO.Redist/src/Microsoft/IO/ThrowHelper.cs [new file with mode: 0644]
src/libraries/Microsoft.VisualBasic.Core/ref/Microsoft.VisualBasic.Core.csproj
src/libraries/System.Collections/src/System.Collections.csproj
src/libraries/System.IO.FileSystem.DriveInfo/ref/System.IO.FileSystem.DriveInfo.csproj
src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj
src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.Forwards.cs
src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs [deleted file]
src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.csproj
src/libraries/System.IO.FileSystem/src/Resources/Strings.resx [deleted file]
src/libraries/System.IO.FileSystem/src/System.IO.FileSystem.csproj
src/libraries/System.IO.FileSystem/src/System/IO/Error.cs [deleted file]
src/libraries/System.IO.IsolatedStorage/ref/System.IO.IsolatedStorage.csproj
src/libraries/System.IO.MemoryMappedFiles/ref/System.IO.MemoryMappedFiles.csproj
src/libraries/System.Private.CoreLib/src/Internal/IO/File.Unix.cs [deleted file]
src/libraries/System.Private.CoreLib/src/Internal/IO/File.Windows.cs [deleted file]
src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs [deleted file]
src/libraries/System.Private.CoreLib/src/Resources/Strings.resx
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Queue.cs [moved from src/libraries/System.Collections/src/System/Collections/Generic/Queue.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/Collections/Generic/QueueDebugView.cs [moved from src/libraries/System.Collections/src/System/Collections/Generic/QueueDebugView.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Directory.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Directory.cs with 97% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/DirectoryInfo.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/DirectoryInfo.cs with 96% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEntry.Unix.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEntry.Unix.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEntry.Windows.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEntry.Windows.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEntry.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEntry.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerable.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEnumerable.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerableFactory.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEnumerableFactory.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Unix.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEnumerator.Unix.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Win32.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEnumerator.Win32.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Windows.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEnumerator.Windows.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemEnumerator.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemName.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Enumeration/FileSystemName.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/EnumerationOptions.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/EnumerationOptions.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/File.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/File.cs with 99% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileInfo.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileInfo.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileStatus.Unix.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileStatus.Unix.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystem.Exists.Unix.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystem.Exists.Unix.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystem.Unix.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystem.Unix.cs with 99% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystem.Win32.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystem.Win32.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystem.Windows.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystem.Windows.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystemInfo.Unix.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystemInfo.Unix.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystemInfo.Windows.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystemInfo.Windows.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/FileSystemInfo.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/FileSystemInfo.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/Iterator.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/Iterator.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/MatchCasing.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/MatchCasing.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/MatchType.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/MatchType.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/ReadLinesIterator.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/ReadLinesIterator.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/SearchOption.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/SearchOption.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/IO/SearchTarget.cs [moved from src/libraries/System.IO.FileSystem/src/System/IO/SearchTarget.cs with 100% similarity]
src/libraries/System.Private.CoreLib/src/System/Resources/FileBasedResourceGroveler.cs
src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyDependencyResolver.cs
src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.cs
src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs
src/libraries/System.Runtime/ref/System.Runtime.cs
src/libraries/System.Runtime/src/MatchingRefApiCompatBaseline.txt

index a9c79cd..644315f 100644 (file)
@@ -17,13 +17,6 @@ internal static partial class Interop
             uint Length,
             uint FileInformationClass);
 
-        [StructLayout(LayoutKind.Sequential)]
-        internal struct IO_STATUS_BLOCK
-        {
-            private uint Status;
-            private IntPtr Information;
-        }
-
         internal const uint FileModeInformation = 16;
 
         internal const int STATUS_INVALID_HANDLE = unchecked((int)0xC0000008);
index 94b9552..db9472c 100644 (file)
@@ -8,53 +8,51 @@
     <IncludePlatformAttributes>true</IncludePlatformAttributes>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Directory.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Directory.cs"
              Link="Microsoft\IO\Directory.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\DirectoryInfo.cs"
              Link="Microsoft\IO\DirectoryInfo.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEntry.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEntry.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEntry.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEntry.Windows.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEntry.Windows.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEntry.Windows.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEnumerable.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEnumerable.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEnumerable.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEnumerableFactory.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEnumerableFactory.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEnumerableFactory.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEnumerator.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEnumerator.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEnumerator.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEnumerator.Win32.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEnumerator.Win32.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEnumerator.Win32.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemEnumerator.Windows.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemEnumerator.Windows.cs"
              Link="Microsoft\IO\Enumeration\FileSystemEnumerator.Windows.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Enumeration\FileSystemName.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Enumeration\FileSystemName.cs"
              Link="Microsoft\IO\Enumeration\FileSystemName.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\EnumerationOptions.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\EnumerationOptions.cs"
              Link="Microsoft\IO\EnumerationOptions.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Error.cs"
-             Link="Microsoft\IO\Error.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\File.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\File.cs"
              Link="Microsoft\IO\File.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\FileInfo.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\FileInfo.cs"
              Link="Microsoft\IO\FileInfo.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\FileSystem.Win32.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\FileSystem.Win32.cs"
              Link="Microsoft\IO\FileSystem.Win32.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\FileSystem.Windows.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\FileSystem.Windows.cs"
              Link="Microsoft\IO\FileSystem.Windows.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\FileSystemInfo.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\FileSystemInfo.cs"
              Link="Microsoft\IO\FileSystemInfo.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\FileSystemInfo.Windows.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\FileSystemInfo.Windows.cs"
              Link="Microsoft\IO\FileSystemInfo.Windows.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\Iterator.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\Iterator.cs"
              Link="Microsoft\IO\Iterator.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\MatchCasing.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\MatchCasing.cs"
              Link="Microsoft\IO\MatchCasing.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\MatchType.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\MatchType.cs"
              Link="Microsoft\IO\MatchType.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\ReadLinesIterator.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\ReadLinesIterator.cs"
              Link="Microsoft\IO\ReadLinesIterator.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\SearchOption.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\SearchOption.cs"
              Link="Microsoft\IO\SearchOption.cs" />
-    <Compile Include="..\..\System.IO.FileSystem\src\System\IO\SearchTarget.cs"
+    <Compile Include="$(CoreLibSharedDir)System\IO\SearchTarget.cs"
              Link="Microsoft\IO\SearchTarget.cs" />
     <Compile Include="$(CommonPath)Interop\Windows\BCrypt\Interop.BCryptGenRandom.cs"
              Link="Interop\Windows\BCrypt\Interop.BCryptGenRandom.cs" />
     <Compile Include="$(CoreLibSharedDir)System\Runtime\InteropServices\SuppressGCTransitionAttribute.cs"
              Link="System\Runtime\InteropServices\SuppressGCTransitionAttribute.cs" />
     <Compile Include="Microsoft\IO\StringExtensions.cs" />
+    <Compile Include="Microsoft\IO\ThrowHelper.cs" />
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="System.Buffers" Version="$(SystemBuffersVersion)" />
diff --git a/src/libraries/Microsoft.IO.Redist/src/Microsoft/IO/ThrowHelper.cs b/src/libraries/Microsoft.IO.Redist/src/Microsoft/IO/ThrowHelper.cs
new file mode 100644 (file)
index 0000000..31e3766
--- /dev/null
@@ -0,0 +1,16 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System;
+using System.IO;
+
+namespace Microsoft.IO
+{
+    internal static class ThrowHelper
+    {
+        internal static void ThrowEndOfFileException()
+        {
+            throw new EndOfStreamException(SR.IO_EOF_ReadBeyondEOF);
+        }
+    }
+}
index 177effc..7eba5c8 100644 (file)
@@ -8,7 +8,6 @@
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\System.ComponentModel\ref\System.ComponentModel.csproj" />
-    <ProjectReference Include="..\..\System.IO.FileSystem\ref\System.IO.FileSystem.csproj" />
     <ProjectReference Include="..\..\System.IO.FileSystem.DriveInfo\ref\System.IO.FileSystem.DriveInfo.csproj" />
     <ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
     <ProjectReference Include="..\..\System.Runtime.Extensions\ref\System.Runtime.Extensions.csproj" />
index 3011056..28dd981 100644 (file)
@@ -15,8 +15,6 @@
     <Compile Include="System\Collections\Generic\LinkedList.cs" />
     <Compile Include="System\Collections\Generic\PriorityQueue.cs" />
     <Compile Include="System\Collections\Generic\PriorityQueueDebugView.cs" />
-    <Compile Include="System\Collections\Generic\Queue.cs" />
-    <Compile Include="System\Collections\Generic\QueueDebugView.cs" />
     <Compile Include="System\Collections\Generic\SortedDictionary.cs" />
     <Compile Include="System\Collections\Generic\SortedList.cs" />
     <Compile Include="System\Collections\Generic\SortedSet.cs" />
index 98edb3f..9f6b2e3 100644 (file)
@@ -8,7 +8,5 @@
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
-    <ProjectReference Include="..\..\System.IO.FileSystem.Primitives\ref\System.IO.FileSystem.Primitives.csproj" />
-    <ProjectReference Include="..\..\System.IO.FileSystem\ref\System.IO.FileSystem.csproj" />
   </ItemGroup>
 </Project>
index 8cef1c5..e0f8628 100644 (file)
@@ -77,8 +77,8 @@
   </ItemGroup>
   <ItemGroup Condition=" '$(TargetsOSX)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true'">
     <Compile Include="System\IO\FileSystemWatcher.OSX.cs" />
-    <Compile Include="$(LibrariesProjectRoot)System.IO.FileSystem\src\System\IO\FileSystem.Exists.Unix.cs"
-             Link="System.IO.FileSystem\src\System\IO\FileSystem.Exists.Unix.cs" />
+    <Compile Include="$(CoreLibSharedDir)System\IO\FileSystem.Exists.Unix.cs"
+             Link="System\IO\FileSystem.Exists.Unix.cs" />
     <Compile Include="$(CommonPath)Interop\OSX\Interop.EventStream.cs"
              Link="Common\Interop\OSX\Interop.EventStream.cs" />
     <Compile Include="$(CommonPath)Interop\OSX\Interop.CoreFoundation.cs"
index b17467b..f2ea51b 100644 (file)
@@ -7,3 +7,17 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.Win32.SafeHandles.SafeFileHandle))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.FileOptions))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.FileStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.Directory))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.DirectoryInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.EnumerationOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.File))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.FileInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.FileSystemInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.MatchCasing))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.MatchType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.SearchOption))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.Enumeration.FileSystemEntry))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.Enumeration.FileSystemEnumerable<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.Enumeration.FileSystemEnumerator<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.IO.Enumeration.FileSystemName))]
+
diff --git a/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs b/src/libraries/System.IO.FileSystem/ref/System.IO.FileSystem.cs
deleted file mode 100644 (file)
index 08121dc..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// ------------------------------------------------------------------------------
-// Changes to this file must follow the https://aka.ms/api-review process.
-// ------------------------------------------------------------------------------
-
-namespace System.IO
-{
-    public static partial class Directory
-    {
-        public static System.IO.DirectoryInfo CreateDirectory(string path) { throw null; }
-        public static void Delete(string path) { }
-        public static void Delete(string path, bool recursive) { }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path, string searchPattern) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? path) { throw null; }
-        public static System.DateTime GetCreationTime(string path) { throw null; }
-        public static System.DateTime GetCreationTimeUtc(string path) { throw null; }
-        public static string GetCurrentDirectory() { throw null; }
-        public static string[] GetDirectories(string path) { throw null; }
-        public static string[] GetDirectories(string path, string searchPattern) { throw null; }
-        public static string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public static string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public static string GetDirectoryRoot(string path) { throw null; }
-        public static string[] GetFiles(string path) { throw null; }
-        public static string[] GetFiles(string path, string searchPattern) { throw null; }
-        public static string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public static string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public static string[] GetFileSystemEntries(string path) { throw null; }
-        public static string[] GetFileSystemEntries(string path, string searchPattern) { throw null; }
-        public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public static System.DateTime GetLastAccessTime(string path) { throw null; }
-        public static System.DateTime GetLastAccessTimeUtc(string path) { throw null; }
-        public static System.DateTime GetLastWriteTime(string path) { throw null; }
-        public static System.DateTime GetLastWriteTimeUtc(string path) { throw null; }
-        public static string[] GetLogicalDrives() { throw null; }
-        public static System.IO.DirectoryInfo? GetParent(string path) { throw null; }
-        public static void Move(string sourceDirName, string destDirName) { }
-        public static void SetCreationTime(string path, System.DateTime creationTime) { }
-        public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { }
-        public static void SetCurrentDirectory(string path) { }
-        public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) { }
-        public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { }
-        public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) { }
-        public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { }
-    }
-    public sealed partial class DirectoryInfo : System.IO.FileSystemInfo
-    {
-        public DirectoryInfo(string path) { }
-        public override bool Exists { get { throw null; } }
-        public override string Name { get { throw null; } }
-        public System.IO.DirectoryInfo? Parent { get { throw null; } }
-        public System.IO.DirectoryInfo Root { get { throw null; } }
-        public void Create() { }
-        public System.IO.DirectoryInfo CreateSubdirectory(string path) { throw null; }
-        public override void Delete() { }
-        public void Delete(bool recursive) { }
-        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories() { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles() { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos() { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos(string searchPattern) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public System.IO.DirectoryInfo[] GetDirectories() { throw null; }
-        public System.IO.DirectoryInfo[] GetDirectories(string searchPattern) { throw null; }
-        public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public System.IO.FileInfo[] GetFiles() { throw null; }
-        public System.IO.FileInfo[] GetFiles(string searchPattern) { throw null; }
-        public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public System.IO.FileSystemInfo[] GetFileSystemInfos() { throw null; }
-        public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern) { throw null; }
-        public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
-        public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
-        public void MoveTo(string destDirName) { }
-        public override string ToString() { throw null; }
-    }
-    public partial class EnumerationOptions
-    {
-        public EnumerationOptions() { }
-        public System.IO.FileAttributes AttributesToSkip { get { throw null; } set { } }
-        public int BufferSize { get { throw null; } set { } }
-        public bool IgnoreInaccessible { get { throw null; } set { } }
-        public System.IO.MatchCasing MatchCasing { get { throw null; } set { } }
-        public System.IO.MatchType MatchType { get { throw null; } set { } }
-        public int MaxRecursionDepth { get { throw null; } set { } }
-        public bool RecurseSubdirectories { get { throw null; } set { } }
-        public bool ReturnSpecialDirectories { get { throw null; } set { } }
-    }
-    public static partial class File
-    {
-        public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable<string> contents) { }
-        public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding) { }
-        public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static void AppendAllText(string path, string? contents) { }
-        public static void AppendAllText(string path, string? contents, System.Text.Encoding encoding) { }
-        public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string? contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string? contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.IO.StreamWriter AppendText(string path) { throw null; }
-        public static void Copy(string sourceFileName, string destFileName) { }
-        public static void Copy(string sourceFileName, string destFileName, bool overwrite) { }
-        public static System.IO.FileStream Create(string path) { throw null; }
-        public static System.IO.FileStream Create(string path, int bufferSize) { throw null; }
-        public static System.IO.FileStream Create(string path, int bufferSize, System.IO.FileOptions options) { throw null; }
-        public static System.IO.StreamWriter CreateText(string path) { throw null; }
-        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
-        public static void Decrypt(string path) { }
-        public static void Delete(string path) { }
-        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
-        public static void Encrypt(string path) { }
-        public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? path) { throw null; }
-        public static System.IO.FileAttributes GetAttributes(string path) { throw null; }
-        public static System.DateTime GetCreationTime(string path) { throw null; }
-        public static System.DateTime GetCreationTimeUtc(string path) { throw null; }
-        public static System.DateTime GetLastAccessTime(string path) { throw null; }
-        public static System.DateTime GetLastAccessTimeUtc(string path) { throw null; }
-        public static System.DateTime GetLastWriteTime(string path) { throw null; }
-        public static System.DateTime GetLastWriteTimeUtc(string path) { throw null; }
-        public static void Move(string sourceFileName, string destFileName) { }
-        public static void Move(string sourceFileName, string destFileName, bool overwrite) { }
-        public static System.IO.FileStream Open(string path, System.IO.FileMode mode) { throw null; }
-        public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { throw null; }
-        public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { throw null; }
-        public static System.IO.FileStream OpenRead(string path) { throw null; }
-        public static System.IO.StreamReader OpenText(string path) { throw null; }
-        public static System.IO.FileStream OpenWrite(string path) { throw null; }
-        public static byte[] ReadAllBytes(string path) { throw null; }
-        public static System.Threading.Tasks.Task<byte[]> ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static string[] ReadAllLines(string path) { throw null; }
-        public static string[] ReadAllLines(string path, System.Text.Encoding encoding) { throw null; }
-        public static System.Threading.Tasks.Task<string[]> ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<string[]> ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static string ReadAllText(string path) { throw null; }
-        public static string ReadAllText(string path, System.Text.Encoding encoding) { throw null; }
-        public static System.Threading.Tasks.Task<string> ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task<string> ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> ReadLines(string path) { throw null; }
-        public static System.Collections.Generic.IEnumerable<string> ReadLines(string path, System.Text.Encoding encoding) { throw null; }
-        public static void Replace(string sourceFileName, string destinationFileName, string? destinationBackupFileName) { }
-        public static void Replace(string sourceFileName, string destinationFileName, string? destinationBackupFileName, bool ignoreMetadataErrors) { }
-        public static void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { }
-        public static void SetCreationTime(string path, System.DateTime creationTime) { }
-        public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { }
-        public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) { }
-        public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { }
-        public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) { }
-        public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { }
-        public static void WriteAllBytes(string path, byte[] bytes) { }
-        public static System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable<string> contents) { }
-        public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding) { }
-        public static void WriteAllLines(string path, string[] contents) { }
-        public static void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { }
-        public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static void WriteAllText(string path, string? contents) { }
-        public static void WriteAllText(string path, string? contents, System.Text.Encoding encoding) { }
-        public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string? contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-        public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string? contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public sealed partial class FileInfo : System.IO.FileSystemInfo
-    {
-        public FileInfo(string fileName) { }
-        public System.IO.DirectoryInfo? Directory { get { throw null; } }
-        public string? DirectoryName { get { throw null; } }
-        public override bool Exists { get { throw null; } }
-        public bool IsReadOnly { get { throw null; } set { } }
-        public long Length { get { throw null; } }
-        public override string Name { get { throw null; } }
-        public System.IO.StreamWriter AppendText() { throw null; }
-        public System.IO.FileInfo CopyTo(string destFileName) { throw null; }
-        public System.IO.FileInfo CopyTo(string destFileName, bool overwrite) { throw null; }
-        public System.IO.FileStream Create() { throw null; }
-        public System.IO.StreamWriter CreateText() { throw null; }
-        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
-        public void Decrypt() { }
-        public override void Delete() { }
-        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
-        public void Encrypt() { }
-        public void MoveTo(string destFileName) { }
-        public void MoveTo(string destFileName, bool overwrite) { }
-        public System.IO.FileStream Open(System.IO.FileMode mode) { throw null; }
-        public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { throw null; }
-        public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { throw null; }
-        public System.IO.FileStream OpenRead() { throw null; }
-        public System.IO.StreamReader OpenText() { throw null; }
-        public System.IO.FileStream OpenWrite() { throw null; }
-        public System.IO.FileInfo Replace(string destinationFileName, string? destinationBackupFileName) { throw null; }
-        public System.IO.FileInfo Replace(string destinationFileName, string? destinationBackupFileName, bool ignoreMetadataErrors) { throw null; }
-        public override string ToString() { throw null; }
-    }
-    public abstract partial class FileSystemInfo : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable
-    {
-        protected string FullPath;
-        protected string OriginalPath;
-        protected FileSystemInfo() { }
-        protected FileSystemInfo(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
-        public System.IO.FileAttributes Attributes { get { throw null; } set { } }
-        public System.DateTime CreationTime { get { throw null; } set { } }
-        public System.DateTime CreationTimeUtc { get { throw null; } set { } }
-        public abstract bool Exists { get; }
-        public string Extension { get { throw null; } }
-        public virtual string FullName { get { throw null; } }
-        public System.DateTime LastAccessTime { get { throw null; } set { } }
-        public System.DateTime LastAccessTimeUtc { get { throw null; } set { } }
-        public System.DateTime LastWriteTime { get { throw null; } set { } }
-        public System.DateTime LastWriteTimeUtc { get { throw null; } set { } }
-        public abstract string Name { get; }
-        public abstract void Delete();
-        public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
-        public void Refresh() { }
-        public override string ToString() { throw null; }
-    }
-    public enum MatchCasing
-    {
-        PlatformDefault = 0,
-        CaseSensitive = 1,
-        CaseInsensitive = 2,
-    }
-    public enum MatchType
-    {
-        Simple = 0,
-        Win32 = 1,
-    }
-    public enum SearchOption
-    {
-        TopDirectoryOnly = 0,
-        AllDirectories = 1,
-    }
-}
-namespace System.IO.Enumeration
-{
-    public ref partial struct FileSystemEntry
-    {
-        private object _dummy;
-        private int _dummyPrimitive;
-        public System.IO.FileAttributes Attributes { get { throw null; } }
-        public System.DateTimeOffset CreationTimeUtc { get { throw null; } }
-        public readonly System.ReadOnlySpan<char> Directory { get { throw null; } }
-        public System.ReadOnlySpan<char> FileName { get { throw null; } }
-        public bool IsDirectory { get { throw null; } }
-        public bool IsHidden { get { throw null; } }
-        public System.DateTimeOffset LastAccessTimeUtc { get { throw null; } }
-        public System.DateTimeOffset LastWriteTimeUtc { get { throw null; } }
-        public long Length { get { throw null; } }
-        public readonly System.ReadOnlySpan<char> OriginalRootDirectory { get { throw null; } }
-        public readonly System.ReadOnlySpan<char> RootDirectory { get { throw null; } }
-        public System.IO.FileSystemInfo ToFileSystemInfo() { throw null; }
-        public string ToFullPath() { throw null; }
-        public string ToSpecifiedFullPath() { throw null; }
-    }
-    public partial class FileSystemEnumerable<TResult> : System.Collections.Generic.IEnumerable<TResult>, System.Collections.IEnumerable
-    {
-        public FileSystemEnumerable(string directory, System.IO.Enumeration.FileSystemEnumerable<TResult>.FindTransform transform, System.IO.EnumerationOptions? options = null) { }
-        public System.IO.Enumeration.FileSystemEnumerable<TResult>.FindPredicate? ShouldIncludePredicate { get { throw null; } set { } }
-        public System.IO.Enumeration.FileSystemEnumerable<TResult>.FindPredicate? ShouldRecursePredicate { get { throw null; } set { } }
-        public System.Collections.Generic.IEnumerator<TResult> GetEnumerator() { throw null; }
-        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
-        public delegate bool FindPredicate(ref System.IO.Enumeration.FileSystemEntry entry);
-        public delegate TResult FindTransform(ref System.IO.Enumeration.FileSystemEntry entry);
-    }
-    public abstract partial class FileSystemEnumerator<TResult> : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Collections.Generic.IEnumerator<TResult>, System.Collections.IEnumerator, System.IDisposable
-    {
-        public FileSystemEnumerator(string directory, System.IO.EnumerationOptions? options = null) { }
-        public TResult Current { get { throw null; } }
-        object? System.Collections.IEnumerator.Current { get { throw null; } }
-        protected virtual bool ContinueOnError(int error) { throw null; }
-        public void Dispose() { }
-        protected virtual void Dispose(bool disposing) { }
-        public bool MoveNext() { throw null; }
-        protected virtual void OnDirectoryFinished(System.ReadOnlySpan<char> directory) { }
-        public void Reset() { }
-        protected virtual bool ShouldIncludeEntry(ref System.IO.Enumeration.FileSystemEntry entry) { throw null; }
-        protected virtual bool ShouldRecurseIntoEntry(ref System.IO.Enumeration.FileSystemEntry entry) { throw null; }
-        protected abstract TResult TransformEntry(ref System.IO.Enumeration.FileSystemEntry entry);
-    }
-    public static partial class FileSystemName
-    {
-        public static bool MatchesSimpleExpression(System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase = true) { throw null; }
-        public static bool MatchesWin32Expression(System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase = true) { throw null; }
-        public static string TranslateWin32Expression(string? expression) { throw null; }
-    }
-}
index 22f81d6..cff7c81 100644 (file)
@@ -4,7 +4,6 @@
     <Nullable>enable</Nullable>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="System.IO.FileSystem.cs" />
     <Compile Include="System.IO.FileSystem.Forwards.cs" />
   </ItemGroup>
   <ItemGroup>
diff --git a/src/libraries/System.IO.FileSystem/src/Resources/Strings.resx b/src/libraries/System.IO.FileSystem/src/Resources/Strings.resx
deleted file mode 100644 (file)
index 683090b..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="Arg_FileIsDirectory_Name" xml:space="preserve">
-    <value>The target file '{0}' is a directory, not a file.</value>
-  </data>
-  <data name="Arg_HandleNotAsync" xml:space="preserve">
-    <value>Handle does not support asynchronous operations. The parameters to the FileStream constructor may need to be changed to indicate that the handle was opened synchronously (that is, it was not opened for overlapped I/O).</value>
-  </data>
-  <data name="Arg_HandleNotSync" xml:space="preserve">
-    <value>Handle does not support synchronous operations. The parameters to the FileStream constructor may need to be changed to indicate that the handle was opened asynchronously (that is, it was opened explicitly for overlapped I/O).</value>
-  </data>
-  <data name="Arg_InvalidFileAttrs" xml:space="preserve">
-    <value>Invalid File or Directory attributes value.</value>
-  </data>
-  <data name="Arg_InvalidHandle" xml:space="preserve">
-    <value>Invalid handle.</value>
-  </data>
-  <data name="Arg_MustBeDriveLetterOrRootDir" xml:space="preserve">
-    <value>Drive name must be a root directory (i.e. 'C:\') or a drive letter ('C').</value>
-  </data>
-  <data name="Arg_Path2IsRooted" xml:space="preserve">
-    <value>Second path fragment must not be a drive or UNC name.</value>
-  </data>
-  <data name="Arg_PathIsVolume" xml:space="preserve">
-    <value>Path must not be a drive.</value>
-  </data>
-  <data name="ArgumentNull_Buffer" xml:space="preserve">
-    <value>Buffer cannot be null.</value>
-  </data>
-  <data name="ArgumentNull_FileName" xml:space="preserve">
-    <value>File name cannot be null.</value>
-  </data>
-  <data name="ArgumentNull_Path" xml:space="preserve">
-    <value>Path cannot be null.</value>
-  </data>
-  <data name="ArgumentOutOfRange_Enum" xml:space="preserve">
-    <value>Enum value was out of legal range.</value>
-  </data>
-  <data name="ArgumentOutOfRange_FileLengthTooBig" xml:space="preserve">
-    <value>Specified file length was too large for the file system.</value>
-  </data>
-  <data name="ArgumentOutOfRange_NeedNonNegNum" xml:space="preserve">
-    <value>Non-negative number required.</value>
-  </data>
-  <data name="ArgumentOutOfRange_NeedPosNum" xml:space="preserve">
-    <value>Positive number required.</value>
-  </data>
-  <data name="Argument_EmptyFileName" xml:space="preserve">
-    <value>Empty file name is not legal.</value>
-  </data>
-  <data name="Argument_EmptyPath" xml:space="preserve">
-    <value>Empty path name is not legal.</value>
-  </data>
-  <data name="Argument_FileNotResized" xml:space="preserve">
-    <value>The stream's length cannot be changed.</value>
-  </data>
-  <data name="Argument_InvalidAppendMode" xml:space="preserve">
-    <value>Append access can be requested only in write-only mode.</value>
-  </data>
-  <data name="Argument_InvalidFileModeAndAccessCombo" xml:space="preserve">
-    <value>Combining FileMode: {0} with FileAccess: {1} is invalid.</value>
-  </data>
-  <data name="Argument_InvalidPathChars" xml:space="preserve">
-    <value>Illegal characters in path '{0}'.</value>
-  </data>
-  <data name="Argument_InvalidSeekOrigin" xml:space="preserve">
-    <value>Invalid seek origin.</value>
-  </data>
-  <data name="Argument_InvalidSubPath" xml:space="preserve">
-    <value>The directory specified, '{0}', is not a subdirectory of '{1}'.</value>
-  </data>
-  <data name="Argument_PathEmpty" xml:space="preserve">
-    <value>Path cannot be the empty string or all whitespace.</value>
-  </data>
-  <data name="IO_AlreadyExists_Name" xml:space="preserve">
-    <value>Cannot create '{0}' because a file or directory with the same name already exists.</value>
-  </data>
-  <data name="IO_BindHandleFailed" xml:space="preserve">
-    <value>BindHandle for ThreadPool failed on this handle.</value>
-  </data>
-  <data name="IO_CannotCreateDirectory" xml:space="preserve">
-    <value>The specified directory '{0}' cannot be created.</value>
-  </data>
-  <data name="IO_EOF_ReadBeyondEOF" xml:space="preserve">
-    <value>Unable to read beyond the end of the stream.</value>
-  </data>
-  <data name="IO_FileExists_Name" xml:space="preserve">
-    <value>The file '{0}' already exists.</value>
-  </data>
-  <data name="IO_FileNotFound" xml:space="preserve">
-    <value>Unable to find the specified file.</value>
-  </data>
-  <data name="IO_FileNotFound_FileName" xml:space="preserve">
-    <value>Could not find file '{0}'.</value>
-  </data>
-  <data name="IO_FileStreamHandlePosition" xml:space="preserve">
-    <value>The OS handle's position is not what FileStream expected. Do not use a handle simultaneously in one FileStream and in Win32 code or another FileStream. This may cause data loss.</value>
-  </data>
-  <data name="IO_FileTooLong2GB" xml:space="preserve">
-    <value>The file is too long. This operation is currently limited to supporting files less than 2 gigabytes in size.</value>
-  </data>
-  <data name="IO_FileTooLongOrHandleNotSync" xml:space="preserve">
-    <value>IO operation will not work. Most likely the file will become too long or the handle was not opened to support synchronous IO operations.</value>
-  </data>
-  <data name="IO_PathNotFound_NoPathName" xml:space="preserve">
-    <value>Could not find a part of the path.</value>
-  </data>
-  <data name="IO_PathNotFound_Path" xml:space="preserve">
-    <value>Could not find a part of the path '{0}'.</value>
-  </data>
-  <data name="IO_PathTooLong" xml:space="preserve">
-    <value>The specified file name or path is too long, or a component of the specified path is too long.</value>
-  </data>
-  <data name="IO_SeekAppendOverwrite" xml:space="preserve">
-    <value>Unable seek backward to overwrite data that previously existed in a file opened in Append mode.</value>
-  </data>
-  <data name="IO_SetLengthAppendTruncate" xml:space="preserve">
-    <value>Unable to truncate data that previously existed in a file opened in Append mode.</value>
-  </data>
-  <data name="IO_SharingViolation_File" xml:space="preserve">
-    <value>The process cannot access the file '{0}' because it is being used by another process.</value>
-  </data>
-  <data name="IO_SharingViolation_NoFileName" xml:space="preserve">
-    <value>The process cannot access the file because it is being used by another process.</value>
-  </data>
-  <data name="IO_SourceDestMustBeDifferent" xml:space="preserve">
-    <value>Source and destination path must be different.</value>
-  </data>
-  <data name="IO_SourceDestMustHaveSameRoot" xml:space="preserve">
-    <value>Source and destination path must have identical roots. Move will not work across volumes.</value>
-  </data>
-  <data name="IO_SyncOpOnUIThread" xml:space="preserve">
-    <value>Synchronous operations should not be performed on the UI thread.  Consider wrapping this method in Task.Run.</value>
-  </data>
-  <data name="IO_UnknownFileName" xml:space="preserve">
-    <value>[Unknown]</value>
-  </data>
-  <data name="IndexOutOfRange_IORaceCondition" xml:space="preserve">
-    <value>Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader.</value>
-  </data>
-  <data name="NotSupported_UnreadableStream" xml:space="preserve">
-    <value>Stream does not support reading.</value>
-  </data>
-  <data name="NotSupported_UnseekableStream" xml:space="preserve">
-    <value>Stream does not support seeking.</value>
-  </data>
-  <data name="NotSupported_UnwritableStream" xml:space="preserve">
-    <value>Stream does not support writing.</value>
-  </data>
-  <data name="ObjectDisposed_FileClosed" xml:space="preserve">
-    <value>Cannot access a closed file.</value>
-  </data>
-  <data name="UnauthorizedAccess_IODenied_NoPathName" xml:space="preserve">
-    <value>Access to the path is denied.</value>
-  </data>
-  <data name="UnauthorizedAccess_IODenied_Path" xml:space="preserve">
-    <value>Access to the path '{0}' is denied.</value>
-  </data>
-  <data name="ObjectDisposed_StreamClosed" xml:space="preserve">
-    <value>Cannot access a closed stream.</value>
-  </data>
-  <data name="PlatformNotSupported_FileEncryption" xml:space="preserve">
-    <value>File encryption is not supported on this platform.</value>
-  </data>
-  <data name="IO_PathTooLong_Path" xml:space="preserve">
-    <value>The path '{0}' is too long, or a component of the specified path is too long.</value>
-  </data>
-</root>
index 0938c53..91447b6 100644 (file)
 ï»¿<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <IsPartialFacadeAssembly>true</IsPartialFacadeAssembly>
-    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser</TargetFrameworks>
+    <TargetFrameworks>$(NetCoreAppCurrent)</TargetFrameworks>
     <Nullable>enable</Nullable>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(TargetsBrowser)' == 'true'">
-    <DefineConstants>$(DefineConstants);TARGET_BROWSER</DefineConstants>
-  </PropertyGroup>
   <ItemGroup>
     <!-- System.IO.Enumeration.FileSystemEntry is not correctly parsed by CsharpAnalyser so we are skipping this type from autogenerated typeforwards file.  -->
     <GenFacadesIgnoreMissingType Include="System.IO.Enumeration.FileSystemEntry" />
   </ItemGroup>
-  <!-- All targets files -->
-  <ItemGroup>
-    <Compile Include="$(CoreLibSharedDir)System\IO\PathInternal.cs"
-             Link="System\IO\PathInternal.cs" />
-    <Compile Include="$(CommonPath)System\Text\ValueStringBuilder.cs"
-             Link="Common\System\Text\ValueStringBuilder.cs" />
-    <Compile Include="$(CommonPath)System\IO\PathInternal.CaseSensitivity.cs"
-             Link="Common\System\IO\PathInternal.CaseSensitivity.cs" />
-    <Compile Include="System\IO\Directory.cs" />
-    <Compile Include="System\IO\DirectoryInfo.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEntry.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEnumerable.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEnumerableFactory.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEnumerator.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemName.cs" />
-    <Compile Include="System\IO\EnumerationOptions.cs" />
-    <Compile Include="System\IO\Error.cs" />
-    <Compile Include="System\IO\File.cs" />
-    <Compile Include="System\IO\FileInfo.cs" />
-    <Compile Include="System\IO\FileSystemInfo.cs" />
-    <Compile Include="System\IO\Iterator.cs" />
-    <Compile Include="System\IO\MatchCasing.cs" />
-    <Compile Include="System\IO\MatchType.cs" />
-    <Compile Include="System\IO\ReadLinesIterator.cs" />
-    <Compile Include="System\IO\SearchOption.cs" />
-    <Compile Include="System\IO\SearchTarget.cs" />
-  </ItemGroup>
-  <!-- All targets references -->
   <ItemGroup>
-    <Reference Include="System.Collections" />
-    <Reference Include="System.Linq" />
-    <Reference Include="System.Memory" />
     <Reference Include="System.Runtime" />
     <Reference Include="System.Runtime.Extensions" />
-    <Reference Include="System.Runtime.InteropServices" />
-    <Reference Include="System.Text.Encoding.Extensions" />
-    <Reference Include="System.Threading.Overlapped" />
-    <Reference Include="System.Threading" />
-  </ItemGroup>
-  <!-- Windows files -->
-  <ItemGroup Condition="'$(TargetsWindows)' == 'true'">
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.BOOL.cs"
-             Link="Interop\Windows\Interop.BOOL.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.BOOLEAN.cs"
-             Link="Common\Interop\Windows\Interop.BOOLEAN.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CloseHandle.cs"
-             Link="Common\Interop\Windows\Interop.CloseHandle.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FILE_TIME.cs"
-             Link="Common\Interop\Windows\Interop.FILE_TIME.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FILE_BASIC_INFO.cs"
-             Link="Common\Interop\Windows\Interop.FILE_BASIC_INFO.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileAttributes.cs"
-             Link="Common\Interop\Windows\Interop.FileAttributes.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FindClose.cs"
-             Link="Interop\Windows\Interop.FindClose.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FindFirstFileEx.cs"
-             Link="Interop\Windows\Interop.FindFirstFileEx.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FormatMessage.cs"
-             Link="Common\Interop\Windows\Interop.FormatMessage.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GenericOperations.cs"
-             Link="Interop\Windows\Interop.GenericOperations.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GET_FILEEX_INFO_LEVELS.cs"
-             Link="Interop\Windows\Interop.GET_FILEEX_INFO_LEVELS.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetFileAttributesEx.cs"
-             Link="Common\Interop\Windows\Interop.GetFileAttributesEx.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetLogicalDrives.cs"
-             Link="Common\Interop\Windows\Interop.GetLogicalDrives.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MAX_PATH.cs"
-             Link="Interop\Windows\Interop.MAX_PATH.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SECURITY_ATTRIBUTES.cs"
-             Link="Interop\Windows\Interop.SECURITY_ATTRIBUTES.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetThreadErrorMode.cs"
-             Link="Interop\Windows\Interop.SetThreadErrorMode.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.WIN32_FILE_ATTRIBUTE_DATA.cs"
-             Link="Interop\Windows\Interop.WIN32_FILE_ATTRIBUTE_DATA.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.WIN32_FIND_DATA.cs"
-             Link="Interop\Windows\Interop.WIN32_FIND_DATA.cs" />
-    <Compile Include="$(CoreLibSharedDir)System\IO\DisableMediaInsertionPrompt.cs"
-             Link="Common\System\IO\DisableMediaInsertionPrompt.cs" />
-    <Compile Include="$(CoreLibSharedDir)System\IO\DriveInfoInternal.Windows.cs"
-             Link="Common\System\IO\DriveInfoInternal.Windows.cs" />
-    <Compile Include="$(CoreLibSharedDir)System\IO\PathInternal.Windows.cs"
-             Link="System\IO\PathInternal.Windows.cs" />
-    <Compile Include="$(CommonPath)System\IO\Win32Marshal.cs"
-             Link="Common\System\IO\Win32Marshal.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.EncryptDecrypt.cs"
-             Link="Common\Interop\Windows\Interop.EncryptDecrypt.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.Errors.cs"
-             Link="Common\Interop\Windows\Interop.Errors.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs"
-             Link="Common\Interop\Windows\Interop.Libraries.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.LongFileTime.cs"
-             Link="Common\Interop\Windows\Interop.LongFileTime.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.SECURITY_QUALITY_OF_SERVICE.cs"
-             Link="Common\Interop\Windows\Interop.SECURITY_QUALITY_OF_SERVICE.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.OBJECT_ATTRIBUTES.cs"
-             Link="Common\Interop\Windows\Interop.OBJECT_ATTRIBUTES.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Interop.UNICODE_STRING.cs"
-             Link="Common\Interop\Windows\Interop.UNICODE_STRING.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CopyFile.cs"
-             Link="Common\Interop\Windows\Interop.CopyFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CopyFileEx.cs"
-             Link="Common\Interop\Windows\Interop.CopyFileEx.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateDirectory.cs"
-             Link="Common\Interop\Windows\Interop.CreateDirectory.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateFile.cs"
-             Link="Common\Interop\Windows\Interop.CreateFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateFile_IntPtr.cs"
-             Link="Common\Interop\Windows\Interop.CreateFile_IntPtr.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.DeleteFile.cs"
-             Link="Common\Interop\Windows\Interop.DeleteFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.DeleteVolumeMountPoint.cs"
-             Link="Common\Interop\Windows\Interop.DeleteVolumeMountPoint.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileOperations.cs"
-             Link="Common\Interop\Windows\Interop.FileOperations.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FindNextFile.cs"
-             Link="Common\Interop\Windows\Interop.FindNextFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetVolumeInformation.cs"
-             Link="Common\Interop\Windows\Interop.GetVolumeInformation.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MoveFileEx.cs"
-             Link="Common\Interop\Windows\Interop.MoveFileEx.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.RemoveDirectory.cs"
-             Link="Common\Interop\Windows\Interop.RemoveDirectory.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ReplaceFile.cs"
-             Link="Common\Interop\Windows\Interop.ReplaceFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetFileAttributes.cs"
-             Link="Common\Interop\Windows\Interop.SetFileAttributes.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetFileInformationByHandle.cs"
-             Link="Common\Interop\Windows\Interop.SetFileInformationByHandle.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.FILE_FULL_DIR_INFORMATION.cs"
-             Link="Common\Interop\Windows\Interop.FILE_FULL_DIR_INFORMATION.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.FILE_INFORMATION_CLASS.cs"
-             Link="Common\Interop\Windows\Interop.FILE_INFORMATION_CLASS.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.IO_STATUS_BLOCK.cs"
-             Link="Common\Interop\Windows\Interop.IO_STATUS_BLOCK.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtCreateFile.cs"
-             Link="Common\Interop\Windows\Interop.NtCreateFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtQueryDirectoryFile.cs"
-             Link="Common\Interop\Windows\Interop.NtQueryDirectoryFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtStatus.cs"
-             Link="Common\Interop\Windows\Interop.NtStatus.cs" />
-    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.RtlNtStatusToDosError.cs"
-             Link="Common\Interop\Windows\Interop.RtlNtStatusToDosError.cs" />
-    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeFindHandle.Windows.cs"
-             Link="Common\Microsoft\Win32\SafeHandles\SafeFindHandle.Windows.cs" />
-    <Compile Include="$(CommonPath)System\HResults.cs"
-             Link="Common\System\HResults.cs" />
-    <Compile Include="$(CommonPath)System\IO\FileSystem.Attributes.Windows.cs"
-             Link="Common\System\IO\FileSystem.Attributes.Windows.cs" />
-    <Compile Include="$(CommonPath)System\IO\FileSystem.DirectoryCreation.Windows.cs"
-             Link="Common\System\IO\FileSystem.DirectoryCreation.Windows.cs" />
-    <Compile Include="$(CommonPath)System\Memory\FixedBufferExtensions.cs"
-             Link="Common\System\Memory\FixedBufferExtensions.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEntry.Windows.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEnumerator.Win32.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEnumerator.Windows.cs" />
-    <Compile Include="System\IO\FileSystem.Win32.cs" />
-    <Compile Include="System\IO\FileSystem.Windows.cs" />
-    <Compile Include="System\IO\FileSystemInfo.Windows.cs" />
-  </ItemGroup>
-  <!-- Unix files -->
-  <ItemGroup Condition="'$(TargetsUnix)' == 'true' or '$(TargetsBrowser)' == 'true'">
-    <Compile Include="$(CommonPath)Interop\Unix\Interop.Errors.cs"
-             Link="Interop\Unix\Interop.Errors.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\Interop.IOErrors.cs"
-             Link="Interop\Unix\Interop.IOErrors.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MountPoints.cs"
-             Link="Common\Interop\Unix\Interop.MountPoints.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Permissions.cs"
-             Link="Common\Interop\Unix\Interop.Permissions.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Read.cs"
-             Link="Common\Interop\Unix\Interop.Read.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ReadDir.cs"
-             Link="Common\Interop\Unix\Interop.ReadDir.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Stat.cs"
-             Link="Common\Interop\Unix\Interop.Stat.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Unlink.cs"
-             Link="Common\Interop\Unix\Interop.Unlink.cs" />
-    <Compile Include="$(CoreLibSharedDir)System\IO\DriveInfoInternal.Unix.cs"
-             Link="Common\System\IO\DriveInfoInternal.Unix.cs" Condition="'$(TargetsBrowser)' != 'true'" />
-    <Compile Include="$(CoreLibSharedDir)System\IO\DriveInfoInternal.Browser.cs"
-             Link="Common\System\IO\DriveInfoInternal.Browser.cs" Condition="'$(TargetsBrowser)' == 'true'" />
-    <Compile Include="$(CoreLibSharedDir)System\IO\PathInternal.Unix.cs"
-             Link="System\IO\PathInternal.Unix.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\Interop.Libraries.cs"
-             Link="Common\Interop\Unix\Interop.Libraries.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ChMod.cs"
-             Link="Common\Interop\Unix\Interop.ChMod.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.CopyFile.cs"
-             Link="Common\Interop\Unix\Interop.CopyFile.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.LChflags.cs"
-             Link="Common\Interop\Unix\Interop.LChflags.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Link.cs"
-             Link="Common\Interop\Unix\Interop.Link.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MkDir.cs"
-             Link="Common\Interop\Unix\Interop.MkDir.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Rename.cs"
-             Link="Common\Interop\Unix\Interop.Rename.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.RmDir.cs"
-             Link="Common\Interop\Unix\Interop.RmDir.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Stat.Span.cs"
-             Link="Common\Interop\Unix\Interop.Stat.Span.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.UTimensat.cs"
-             Link="Common\Interop\Unix\Interop.UTimensat.cs" />
-    <Compile Include="$(CommonPath)System\Text\ValueUtf8Converter.cs"
-             Link="Common\System\Text\ValueUtf8Converter.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEntry.Unix.cs" />
-    <Compile Include="System\IO\Enumeration\FileSystemEnumerator.Unix.cs" />
-    <Compile Include="System\IO\FileStatus.Unix.cs" />
-    <Compile Include="System\IO\FileSystem.Exists.Unix.cs" />
-    <Compile Include="System\IO\FileSystem.Unix.cs" />
-    <Compile Include="System\IO\FileSystemInfo.Unix.cs" />
-  </ItemGroup>
-  <ItemGroup Condition="'$(TargetsUnix)' == 'true'">
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetEUid.cs"
-             Link="Common\Interop\Unix\Interop.GetEUid.cs" />
-    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetEGid.cs"
-             Link="Common\Interop\Unix\Interop.GetEGid.cs" />
-  </ItemGroup>
-  <!-- Unix references -->
-  <ItemGroup Condition="'$(TargetsUnix)' == 'true' or '$(TargetsBrowser)' == 'true'">
-    <Reference Include="System.Threading" />
   </ItemGroup>
 </Project>
diff --git a/src/libraries/System.IO.FileSystem/src/System/IO/Error.cs b/src/libraries/System.IO.FileSystem/src/System/IO/Error.cs
deleted file mode 100644 (file)
index 3abceef..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace System.IO
-{
-    /// <summary>
-    /// Provides centralized methods for creating exceptions for System.IO.FileSystem.
-    /// </summary>
-    internal static class Error
-    {
-        internal static Exception GetEndOfFile()
-        {
-            return new EndOfStreamException(SR.IO_EOF_ReadBeyondEOF);
-        }
-    }
-}
index ab19b0d..39903d8 100644 (file)
@@ -7,8 +7,6 @@
     <Compile Include="System.IO.IsolatedStorage.cs" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\System.IO.FileSystem\ref\System.IO.FileSystem.csproj" />
-    <ProjectReference Include="..\..\System.IO.FileSystem.Primitives\ref\System.IO.FileSystem.Primitives.csproj" />
     <ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
   </ItemGroup>
 </Project>
index e29e8df..328e5db 100644 (file)
@@ -7,8 +7,6 @@
     <Compile Include="System.IO.MemoryMappedFiles.cs" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\System.IO.FileSystem.Primitives\ref\System.IO.FileSystem.Primitives.csproj" />
-    <ProjectReference Include="..\..\System.IO.FileSystem\ref\System.IO.FileSystem.csproj" />
     <ProjectReference Include="..\..\System.IO.UnmanagedMemoryStream\ref\System.IO.UnmanagedMemoryStream.csproj" />
     <ProjectReference Include="..\..\System.Runtime.InteropServices\ref\System.Runtime.InteropServices.csproj" />
     <ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
diff --git a/src/libraries/System.Private.CoreLib/src/Internal/IO/File.Unix.cs b/src/libraries/System.Private.CoreLib/src/Internal/IO/File.Unix.cs
deleted file mode 100644 (file)
index 8cf6606..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace Internal.IO
-{
-    internal static partial class File
-    {
-        internal static bool InternalExists(string fullPath)
-        {
-            Interop.Sys.FileStatus fileinfo;
-
-            // First use stat, as we want to follow symlinks.  If that fails, it could be because the symlink
-            // is broken, we don't have permissions, etc., in which case fall back to using LStat to evaluate
-            // based on the symlink itself.
-            if (Interop.Sys.Stat(fullPath, out fileinfo) < 0 &&
-                Interop.Sys.LStat(fullPath, out fileinfo) < 0)
-            {
-                return false;
-            }
-
-            return ((fileinfo.Mode & Interop.Sys.FileTypes.S_IFMT) != Interop.Sys.FileTypes.S_IFDIR);
-        }
-    }
-}
diff --git a/src/libraries/System.Private.CoreLib/src/Internal/IO/File.Windows.cs b/src/libraries/System.Private.CoreLib/src/Internal/IO/File.Windows.cs
deleted file mode 100644 (file)
index 354384b..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Win32.SafeHandles;
-using System.IO;
-using System.Runtime.InteropServices;
-
-namespace Internal.IO
-{
-    internal static partial class File
-    {
-        internal static bool InternalExists(string fullPath)
-        {
-            Interop.Kernel32.WIN32_FILE_ATTRIBUTE_DATA data = default;
-            int errorCode = FillAttributeInfo(fullPath, ref data, returnErrorOnNotFound: true);
-
-            return (errorCode == 0) && (data.dwFileAttributes != -1)
-                    && ((data.dwFileAttributes & Interop.Kernel32.FileAttributes.FILE_ATTRIBUTE_DIRECTORY) == 0);
-        }
-
-        /// <summary>
-        /// Returns 0 on success, otherwise a Win32 error code.  Note that
-        /// classes should use -1 as the uninitialized state for dataInitialized.
-        /// </summary>
-        internal static int FillAttributeInfo(string path, ref Interop.Kernel32.WIN32_FILE_ATTRIBUTE_DATA data, bool returnErrorOnNotFound)
-        {
-            int errorCode = Interop.Errors.ERROR_SUCCESS;
-
-            using (DisableMediaInsertionPrompt.Create())
-            {
-                if (!Interop.Kernel32.GetFileAttributesEx(path, Interop.Kernel32.GET_FILEEX_INFO_LEVELS.GetFileExInfoStandard, ref data))
-                {
-                    errorCode = Marshal.GetLastPInvokeError();
-                    if (errorCode == Interop.Errors.ERROR_ACCESS_DENIED)
-                    {
-                        // Files that are marked for deletion will not let you GetFileAttributes,
-                        // ERROR_ACCESS_DENIED is given back without filling out the data struct.
-                        // FindFirstFile, however, will. Historically we always gave back attributes
-                        // for marked-for-deletion files.
-
-                        Interop.Kernel32.WIN32_FIND_DATA findData = default;
-                        using (SafeFindHandle handle = Interop.Kernel32.FindFirstFile(path, ref findData))
-                        {
-                            if (handle.IsInvalid)
-                            {
-                                errorCode = Marshal.GetLastPInvokeError();
-                            }
-                            else
-                            {
-                                errorCode = Interop.Errors.ERROR_SUCCESS;
-                                data.PopulateFrom(ref findData);
-                            }
-                        }
-                    }
-                }
-            }
-
-            if (errorCode != Interop.Errors.ERROR_SUCCESS && !returnErrorOnNotFound)
-            {
-                switch (errorCode)
-                {
-                    case Interop.Errors.ERROR_FILE_NOT_FOUND:
-                    case Interop.Errors.ERROR_PATH_NOT_FOUND:
-                    case Interop.Errors.ERROR_NOT_READY: // Removable media not ready
-                        // Return default value for backward compatibility
-                        data.dwFileAttributes = -1;
-                        return Interop.Errors.ERROR_SUCCESS;
-                }
-            }
-
-            return errorCode;
-        }
-    }
-}
diff --git a/src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs b/src/libraries/System.Private.CoreLib/src/Internal/IO/File.cs
deleted file mode 100644 (file)
index 127d72d..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.Diagnostics;
-using System.Diagnostics.CodeAnalysis;
-using System.Security;
-using System.IO;
-
-namespace Internal.IO
-{
-    //
-    // Subsetted clone of System.IO.File for internal runtime use.
-    // Keep in sync with https://github.com/dotnet/runtime/tree/main/src/libraries/System.IO.FileSystem.
-    //
-    internal static partial class File
-    {
-        // Tests if a file exists. The result is true if the file
-        // given by the specified path exists; otherwise, the result is
-        // false.  Note that if path describes a directory,
-        // Exists will return true.
-        public static bool Exists([NotNullWhen(true)] string? path)
-        {
-            try
-            {
-                if (path == null)
-                    return false;
-                if (path.Length == 0)
-                    return false;
-
-                path = Path.GetFullPath(path);
-
-                // After normalizing, check whether path ends in directory separator.
-                // Otherwise, FillAttributeInfo removes it and we may return a false positive.
-                // GetFullPath should never return null
-                Debug.Assert(path != null, "File.Exists: GetFullPath returned null");
-                if (path.Length > 0 && PathInternal.IsDirectorySeparator(path[^1]))
-                {
-                    return false;
-                }
-
-                return InternalExists(path);
-            }
-            catch (ArgumentException) { }
-            catch (IOException) { }
-            catch (UnauthorizedAccessException) { }
-
-            return false;
-        }
-
-        public static byte[] ReadAllBytes(string path)
-        {
-            // bufferSize == 1 used to avoid unnecessary buffer in FileStream
-            using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 1))
-            {
-                long fileLength = fs.Length;
-                if (fileLength > int.MaxValue)
-                    throw new IOException(SR.IO_FileTooLong2GB);
-
-                int index = 0;
-                int count = (int)fileLength;
-                byte[] bytes = new byte[count];
-                while (count > 0)
-                {
-                    int n = fs.Read(bytes, index, count);
-                    if (n == 0)
-                        ThrowHelper.ThrowEndOfFileException();
-                    index += n;
-                    count -= n;
-                }
-                return bytes;
-            }
-        }
-    }
-}
index 516f19e..c64c59a 100644 (file)
   <data name="NotSupported_COM" xml:space="preserve">
     <value>Built-in COM has been disabled via a feature switch. See https://aka.ms/dotnet-illink/com for more information.</value>
   </data>
+  <data name="InvalidOperation_EmptyQueue" xml:space="preserve">
+    <value>Queue empty.</value>
+  </data>
+  <data name="Arg_FileIsDirectory_Name" xml:space="preserve">
+    <value>The target file '{0}' is a directory, not a file.</value>
+  </data>
+  <data name="Arg_InvalidFileAttrs" xml:space="preserve">
+    <value>Invalid File or Directory attributes value.</value>
+  </data>
+  <data name="Arg_Path2IsRooted" xml:space="preserve">
+    <value>Second path fragment must not be a drive or UNC name.</value>
+  </data>
+  <data name="Arg_PathIsVolume" xml:space="preserve">
+    <value>Path must not be a drive.</value>
+  </data>
+  <data name="Argument_FileNotResized" xml:space="preserve">
+    <value>The stream's length cannot be changed.</value>
+  </data>
+  <data name="Argument_InvalidSubPath" xml:space="preserve">
+    <value>The directory specified, '{0}', is not a subdirectory of '{1}'.</value>
+  </data>
+  <data name="IO_CannotCreateDirectory" xml:space="preserve">
+    <value>The specified directory '{0}' cannot be created.</value>
+  </data>
+  <data name="IO_SourceDestMustBeDifferent" xml:space="preserve">
+    <value>Source and destination path must be different.</value>
+  </data>
+  <data name="IO_SourceDestMustHaveSameRoot" xml:space="preserve">
+    <value>Source and destination path must have identical roots. Move will not work across volumes.</value>
+  </data>
+  <data name="IO_SyncOpOnUIThread" xml:space="preserve">
+    <value>Synchronous operations should not be performed on the UI thread.  Consider wrapping this method in Task.Run.</value>
+  </data>
+  <data name="IndexOutOfRange_IORaceCondition" xml:space="preserve">
+    <value>Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader.</value>
+  </data>
+  <data name="PlatformNotSupported_FileEncryption" xml:space="preserve">
+    <value>File encryption is not supported on this platform.</value>
+  </data>
 </root>
\ No newline at end of file
index fb5011f..bbbd804 100644 (file)
@@ -54,7 +54,6 @@
   <ItemGroup>
     <Compile Include="$(MSBuildThisFileDirectory)Internal\AssemblyAttributes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Internal\Console.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Internal\IO\File.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Internal\Padding.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Internal\Runtime\CompilerServices\Unsafe.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Microsoft\Win32\SafeHandles\CriticalHandleMinusOneIsInvalid.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\KeyNotFoundException.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\KeyValuePair.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\List.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\Queue.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\QueueDebugView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\RandomizedStringEqualityComparer.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\NonRandomizedStringEqualityComparer.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Collections\Generic\ValueListBuilder.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\BinaryReader.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\BinaryWriter.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\BufferedStream.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Directory.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\DirectoryInfo.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\DirectoryNotFoundException.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\EncodingCache.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\EnumerationOptions.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\EndOfStreamException.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\File.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileAccess.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileAttributes.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileInfo.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileLoadException.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileMode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileNotFoundException.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileShare.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileStream.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileStreamOptions.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystemInfo.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\HandleInheritability.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\InvalidDataException.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\IOException.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Iterator.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\MatchCasing.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\MatchType.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\MemoryStream.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Path.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PathInternal.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PathTooLongException.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PinnedBufferMemoryStream.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\ReadLinesIterator.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\SearchOption.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\SearchTarget.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\SeekOrigin.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Stream.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\StreamReader.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\UnmanagedMemoryAccessor.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\UnmanagedMemoryStream.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\UnmanagedMemoryStreamWrapper.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEntry.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEnumerator.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEnumerable.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEnumerableFactory.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemName.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\BufferedFileStreamStrategy.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\DerivedFileStreamStrategy.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\FileStreamHelpers.cs" />
     <Compile Include="$(CommonPath)System\SR.cs">
       <Link>Common\System\SR.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)System\Collections\Generic\EnumerableHelpers.cs">
+      <Link>Common\System\Collections\Generic\EnumerableHelpers.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)System\Collections\Generic\ReferenceEqualityComparer.cs">
       <Link>Common\System\Collections\Generic\ReferenceEqualityComparer.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)System\Diagnostics\CodeAnalysis\ExcludeFromCodeCoverageAttribute.cs">
       <Link>Common\System\Diagnostics\CodeAnalysis\ExcludeFromCodeCoverageAttribute.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)System\IO\PathInternal.CaseSensitivity.cs">
+      <Link>Common\System\IO\PathInternal.CaseSensitivity.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)System\Runtime\CompilerServices\IsExternalInit.cs">
       <Link>Common\System\Runtime\CompilerServices\IsExternalInit.cs</Link>
     </Compile>
     </Compile>
   </ItemGroup>
   <ItemGroup Condition="'$(TargetsWindows)' == 'true'">
+    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.EncryptDecrypt.cs">
+      <Link>Common\Interop\Windows\Advapi32\Interop.EncryptDecrypt.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.EventActivityIdControl.cs">
       <Link>Common\Interop\Windows\Advapi32\Interop.EventActivityIdControl.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ConditionVariable.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.ConditionVariable.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CopyFile.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.CopyFile.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CopyFileEx.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.CopyFileEx.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateDirectory.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.CreateDirectory.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateFile.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.CreateFile.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtCreateFile.cs">
       <Link>Common\Interop\Windows\NtDll\Interop.NtCreateFile.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtStatus.cs">
+      <Link>Common\Interop\Windows\NtDll\Interop.NtStatus.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.IO_STATUS_BLOCK.cs">
+      <Link>Common\Interop\Windows\NtDll\Interop.IO_STATUS_BLOCK.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.RtlNtStatusToDosError.cs">
       <Link>Common\Interop\Windows\NtDll\Interop.RtlNtStatusToDosError.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.DeleteFile.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.DeleteFile.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.DeleteVolumeMountPoint.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.DeleteVolumeMountPoint.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateFile_IntPtr.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.CreateFile_IntPtr.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CriticalSection.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.CriticalSection.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ExpandEnvironmentStrings.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.ExpandEnvironmentStrings.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FILE_BASIC_INFO.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.FILE_BASIC_INFO.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FILE_END_OF_FILE_INFO.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.FILE_END_OF_FILE_INFO.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileAttributes.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.FileAttributes.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FindNextFile.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.FindNextFile.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileOperations.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.FileOperations.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileTimeToSystemTime.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.FileTimeToSystemTime.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetTempPathW.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.GetTempPathW.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetVolumeInformation.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.GetVolumeInformation.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GlobalMemoryStatusEx.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.GlobalMemoryStatusEx.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MultiByteToWideChar.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.MultiByteToWideChar.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MoveFileEx.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.MoveFileEx.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.OSVERSIONINFOEX.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.OSVERSIONINFOEX.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ReadFile_SafeHandle_NativeOverlapped.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.ReadFile_SafeHandle_NativeOverlapped.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.RemoveDirectory.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.RemoveDirectory.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ReplaceFile.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.ReplaceFile.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SECURITY_ATTRIBUTES.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.SECURITY_ATTRIBUTES.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetCurrentDirectory.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.SetCurrentDirectory.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetFileAttributes.cs">
+      <Link>Common\Interop\Windows\Kernel32\Interop.SetFileAttributes.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetFileInformationByHandle.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.SetFileInformationByHandle.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.WriteFile_SafeHandle_NativeOverlapped.cs">
       <Link>Common\Interop\Windows\Kernel32\Interop.WriteFile_SafeHandle_NativeOverlapped.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.FILE_FULL_DIR_INFORMATION.cs">
+      <Link>Common\Interop\Windows\NtDll\Interop.FILE_FULL_DIR_INFORMATION.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.FILE_INFORMATION_CLASS.cs">
+      <Link>Common\Interop\Windows\NtDll\Interop.FILE_INFORMATION_CLASS.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtQueryDirectoryFile.cs">
+      <Link>Common\Interop\Windows\NtDll\Interop.NtQueryDirectoryFile.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtQueryInformationFile.cs">
       <Link>Common\Interop\Windows\NtDll\Interop.NtQueryInformationFile.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.LoadString.cs">
       <Link>Common\Interop\Windows\User32\Interop.LoadString.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Windows\Interop.LongFileTime.cs">
+      <Link>Common\Interop\Windows\Interop.LongFileTime</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.SendMessageTimeout.cs">
       <Link>Common\Interop\Windows\User32\Interop.SendMessageTimeout.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.USEROBJECTFLAGS.cs">
       <Link>Common\Interop\Windows\User32\Interop.USEROBJECTFLAGS.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)System\IO\FileSystem.Attributes.Windows.cs">
+      <Link>Common\System\IO\FileSystem.Attributes.Windows.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)System\IO\FileSystem.DirectoryCreation.Windows.cs">
+      <Link>Common\System\IO\FileSystem.DirectoryCreation.Windows.cs</Link>
+    </Compile>
     <Compile Include="$(MSBuildThisFileDirectory)Internal\Console.Windows.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Internal\IO\File.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Internal\Win32\RegistryKey.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Microsoft\Win32\SafeHandles\SafeFileHandle.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Microsoft\Win32\SafeHandles\SafeFindHandle.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Guid.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\DisableMediaInsertionPrompt.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\DriveInfoInternal.Windows.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystem.Win32.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystem.Windows.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystemInfo.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Path.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PathHelper.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PathInternal.Windows.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEntry.Windows.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEnumerator.Win32.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEnumerator.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\AsyncWindowsFileStreamStrategy.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\AsyncWindowsFileStreamStrategy.ValueTaskSource.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\FileStreamHelpers.Windows.cs" />
     <Compile Include="$(CommonPath)System\IO\Win32Marshal.cs">
       <Link>Common\System\IO\Win32Marshal.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)System\Memory\FixedBufferExtensions.cs">
+      <Link>Common\System\Memory\FixedBufferExtensions.cs</Link>
+    </Compile>
     <Compile Include="$(MSBuildThisFileDirectory)System\Environment.Variables.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Threading\Mutex.Windows.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Threading\Semaphore.Windows.cs" />
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ChDir.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.ChDir.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ChMod.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.ChMod.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Close.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.Close.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.CopyFile.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.CopyFile.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ErrNo.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.ErrNo.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetCwd.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.GetCwd.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetEGid.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.GetHostName.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetHostName.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.GetHostName.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetUnixRelease.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.GetUnixRelease.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.LChflags.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.LChflags.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Link.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.Link.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.LockFileRegion.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.LockFileRegion.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MemAlloc.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.MemAlloc.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MkDir.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.MkDir.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MksTemps.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.MksTemps.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ReadLink.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.ReadLink.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Rename.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.Rename.cs</Link>
+    </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.RmDir.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.RmDir.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Stat.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.Stat.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Stat.Span.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.Stat.Span.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.SysConf.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.SysConf.cs</Link>
     </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Unlink.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.Unlink.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.UTimensat.cs">
+      <Link>Common\Interop\Unix\System.Native\Interop.UTimensat.cs</Link>
+    </Compile>
     <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Write.cs">
       <Link>Common\Interop\Unix\System.Native\Interop.Write.cs</Link>
     </Compile>
+    <Compile Include="$(CommonPath)System\Text\ValueUtf8Converter.cs">
+      <Link>Common\System\Text\ValueUtf8Converter.cs</Link>
+    </Compile>
     <Compile Include="$(MSBuildThisFileDirectory)Internal\Console.Unix.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Internal\IO\File.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Microsoft\Win32\SafeHandles\SafeFileHandle.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\AppDomain.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Buffer.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Globalization\GlobalizationMode.LoadICU.iOS.cs" Condition="'$(IsiOSLike)' == 'true'" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Globalization\HijriCalendar.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\Guid.Unix.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileStatus.Unix.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystem.Unix.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystem.Exists.Unix.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\FileSystemInfo.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Path.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PathInternal.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\PersistedFiles.Names.Unix.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEntry.Unix.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)System\IO\Enumeration\FileSystemEnumerator.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\FileStreamHelpers.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\Net5CompatFileStreamStrategy.Unix.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)System\IO\Strategies\Net5CompatFileStreamStrategy.Lock.OSX.cs" Condition="'$(IsOSXLike)' == 'true'" />
@@ -5,7 +5,6 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics.CodeAnalysis;
 using System.IO;
-using System.Linq;
 
 #if MS_IO_REDIST
 using Microsoft.IO.Enumeration;
@@ -144,7 +143,7 @@ namespace System.IO
             => GetFiles(path, searchPattern, EnumerationOptions.FromSearchOption(searchOption));
 
         public static string[] GetFiles(string path, string searchPattern, EnumerationOptions enumerationOptions)
-            => InternalEnumeratePaths(path, searchPattern, SearchTarget.Files, enumerationOptions).ToArray();
+            => new List<string>(InternalEnumeratePaths(path, searchPattern, SearchTarget.Files, enumerationOptions)).ToArray();
 
         public static string[] GetDirectories(string path) => GetDirectories(path, "*", enumerationOptions: EnumerationOptions.Compatible);
 
@@ -154,7 +153,7 @@ namespace System.IO
             => GetDirectories(path, searchPattern, EnumerationOptions.FromSearchOption(searchOption));
 
         public static string[] GetDirectories(string path, string searchPattern, EnumerationOptions enumerationOptions)
-            => InternalEnumeratePaths(path, searchPattern, SearchTarget.Directories, enumerationOptions).ToArray();
+            => new List<string>(InternalEnumeratePaths(path, searchPattern, SearchTarget.Directories, enumerationOptions)).ToArray();
 
         public static string[] GetFileSystemEntries(string path) => GetFileSystemEntries(path, "*", enumerationOptions: EnumerationOptions.Compatible);
 
@@ -164,7 +163,7 @@ namespace System.IO
             => GetFileSystemEntries(path, searchPattern, EnumerationOptions.FromSearchOption(searchOption));
 
         public static string[] GetFileSystemEntries(string path, string searchPattern, EnumerationOptions enumerationOptions)
-            => InternalEnumeratePaths(path, searchPattern, SearchTarget.Both, enumerationOptions).ToArray();
+            => new List<string>(InternalEnumeratePaths(path, searchPattern, SearchTarget.Both, enumerationOptions)).ToArray();
 
         internal static IEnumerable<string> InternalEnumeratePaths(
             string path,
@@ -5,7 +5,6 @@ using System;
 using System.IO;
 using System.Collections.Generic;
 using System.Diagnostics;
-using System.Linq;
 
 #if MS_IO_REDIST
 using Microsoft.IO.Enumeration;
@@ -107,7 +106,7 @@ namespace System.IO
             => GetFiles(searchPattern, EnumerationOptions.FromSearchOption(searchOption));
 
         public FileInfo[] GetFiles(string searchPattern, EnumerationOptions enumerationOptions)
-            => ((IEnumerable<FileInfo>)InternalEnumerateInfos(FullPath, searchPattern, SearchTarget.Files, enumerationOptions)).ToArray();
+            => new List<FileInfo>((IEnumerable<FileInfo>)InternalEnumerateInfos(FullPath, searchPattern, SearchTarget.Files, enumerationOptions)).ToArray();
 
         // Returns an array of strongly typed FileSystemInfo entries which will contain a listing
         // of all the files and directories.
@@ -122,7 +121,7 @@ namespace System.IO
             => GetFileSystemInfos(searchPattern, EnumerationOptions.FromSearchOption(searchOption));
 
         public FileSystemInfo[] GetFileSystemInfos(string searchPattern, EnumerationOptions enumerationOptions)
-            => InternalEnumerateInfos(FullPath, searchPattern, SearchTarget.Both, enumerationOptions).ToArray();
+            => new List<FileSystemInfo>(InternalEnumerateInfos(FullPath, searchPattern, SearchTarget.Both, enumerationOptions)).ToArray();
 
         // Returns an array of Directories in the current directory.
         public DirectoryInfo[] GetDirectories() => GetDirectories("*", enumerationOptions: EnumerationOptions.Compatible);
@@ -135,7 +134,7 @@ namespace System.IO
             => GetDirectories(searchPattern, EnumerationOptions.FromSearchOption(searchOption));
 
         public DirectoryInfo[] GetDirectories(string searchPattern, EnumerationOptions enumerationOptions)
-            => ((IEnumerable<DirectoryInfo>)InternalEnumerateInfos(FullPath, searchPattern, SearchTarget.Directories, enumerationOptions)).ToArray();
+            => new List<DirectoryInfo>((IEnumerable<DirectoryInfo>)InternalEnumerateInfos(FullPath, searchPattern, SearchTarget.Directories, enumerationOptions)).ToArray();
 
         public IEnumerable<DirectoryInfo> EnumerateDirectories()
             => EnumerateDirectories("*", enumerationOptions: EnumerationOptions.Compatible);
@@ -352,7 +352,10 @@ namespace System.IO
                 {
                     int n = fs.Read(bytes, index, count);
                     if (n == 0)
-                        throw Error.GetEndOfFile();
+                    {
+                        ThrowHelper.ThrowEndOfFileException();
+                    }
+
                     index += n;
                     count -= n;
                 }
@@ -815,7 +818,7 @@ namespace System.IO
 #endif
                     if (n == 0)
                     {
-                        throw Error.GetEndOfFile();
+                        ThrowHelper.ThrowEndOfFileException();
                     }
 
                     index += n;
@@ -261,7 +261,7 @@ namespace System.IO
 
             // Attempt to figure out which directories don't exist, and only create the ones we need.
             bool somepathexists = false;
-            Stack<string> stackDir = new Stack<string>();
+            List<string> stackDir = new List<string>();
             int lengthRoot = PathInternal.GetRootLength(fullPath);
             if (length > lengthRoot)
             {
@@ -270,7 +270,7 @@ namespace System.IO
                 {
                     if (!DirectoryExists(fullPath.AsSpan(0, i + 1))) // Create only the ones missing
                     {
-                        stackDir.Push(fullPath.Substring(0, i + 1));
+                        stackDir.Add(fullPath.Substring(0, i + 1));
                     }
                     else
                     {
@@ -300,9 +300,9 @@ namespace System.IO
             int result = 0;
             Interop.ErrorInfo firstError = default(Interop.ErrorInfo);
             string errorString = fullPath;
-            while (stackDir.Count > 0)
+            for (int i = stackDir.Count - 1; i >= 0; i--)
             {
-                string name = stackDir.Pop();
+                string name = stackDir[i];
 
                 // The mkdir command uses 0777 by default (it'll be AND'd with the process umask internally).
                 // We do the same.
index 2bbdd3d..77b4a68 100644 (file)
@@ -15,8 +15,6 @@ using System.Diagnostics;
 using System.Globalization;
 using System.IO;
 
-using Internal.IO;
-
 namespace System.Resources
 {
     internal sealed class FileBasedResourceGroveler : IResourceGroveler
index 5dea6b3..6c733ef 100644 (file)
@@ -780,7 +780,7 @@ namespace System.Runtime.Loader
 
             string assemblyPath = Path.Combine(parentDirectory, assemblyName.CultureName!, $"{assemblyName.Name}.dll");
 
-            bool exists = Internal.IO.File.InternalExists(assemblyPath);
+            bool exists = System.IO.FileSystem.FileExists(assemblyPath);
             if (!exists && Path.IsCaseSensitive)
             {
 #if CORECLR
@@ -790,7 +790,7 @@ namespace System.Runtime.Loader
                 }
 #endif // CORECLR
                 assemblyPath = Path.Combine(parentDirectory, assemblyName.CultureName!.ToLowerInvariant(), $"{assemblyName.Name}.dll");
-                exists = Internal.IO.File.InternalExists(assemblyPath);
+                exists = System.IO.FileSystem.FileExists(assemblyPath);
             }
 
             Assembly? asm = exists ? parentALC.LoadFromAssemblyPath(assemblyPath) : null;
index c67b3a2..ebc626a 100644 (file)
@@ -12,8 +12,6 @@ using System.Text;
 using System.Threading;
 using System.Security;
 
-using Internal.IO;
-
 namespace System
 {
     public sealed partial class TimeZoneInfo
index 9b82d81..224a13e 100644 (file)
@@ -7391,6 +7391,246 @@ namespace System.IO
         public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
         public override void WriteByte(byte value) { }
     }
+    public static partial class Directory
+    {
+        public static System.IO.DirectoryInfo CreateDirectory(string path) { throw null; }
+        public static void Delete(string path) { }
+        public static void Delete(string path, bool recursive) { }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path, string searchPattern) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? path) { throw null; }
+        public static System.DateTime GetCreationTime(string path) { throw null; }
+        public static System.DateTime GetCreationTimeUtc(string path) { throw null; }
+        public static string GetCurrentDirectory() { throw null; }
+        public static string[] GetDirectories(string path) { throw null; }
+        public static string[] GetDirectories(string path, string searchPattern) { throw null; }
+        public static string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public static string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public static string GetDirectoryRoot(string path) { throw null; }
+        public static string[] GetFiles(string path) { throw null; }
+        public static string[] GetFiles(string path, string searchPattern) { throw null; }
+        public static string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public static string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public static string[] GetFileSystemEntries(string path) { throw null; }
+        public static string[] GetFileSystemEntries(string path, string searchPattern) { throw null; }
+        public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public static System.DateTime GetLastAccessTime(string path) { throw null; }
+        public static System.DateTime GetLastAccessTimeUtc(string path) { throw null; }
+        public static System.DateTime GetLastWriteTime(string path) { throw null; }
+        public static System.DateTime GetLastWriteTimeUtc(string path) { throw null; }
+        public static string[] GetLogicalDrives() { throw null; }
+        public static System.IO.DirectoryInfo? GetParent(string path) { throw null; }
+        public static void Move(string sourceDirName, string destDirName) { }
+        public static void SetCreationTime(string path, System.DateTime creationTime) { }
+        public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { }
+        public static void SetCurrentDirectory(string path) { }
+        public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) { }
+        public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { }
+        public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) { }
+        public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { }
+    }
+    public abstract partial class FileSystemInfo : System.MarshalByRefObject, System.Runtime.Serialization.ISerializable
+    {
+        protected string FullPath;
+        protected string OriginalPath;
+        protected FileSystemInfo() { }
+        protected FileSystemInfo(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
+        public System.IO.FileAttributes Attributes { get { throw null; } set { } }
+        public System.DateTime CreationTime { get { throw null; } set { } }
+        public System.DateTime CreationTimeUtc { get { throw null; } set { } }
+        public abstract bool Exists { get; }
+        public string Extension { get { throw null; } }
+        public virtual string FullName { get { throw null; } }
+        public System.DateTime LastAccessTime { get { throw null; } set { } }
+        public System.DateTime LastAccessTimeUtc { get { throw null; } set { } }
+        public System.DateTime LastWriteTime { get { throw null; } set { } }
+        public System.DateTime LastWriteTimeUtc { get { throw null; } set { } }
+        public abstract string Name { get; }
+        public abstract void Delete();
+        public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
+        public void Refresh() { }
+        public override string ToString() { throw null; }
+    }
+    public sealed partial class DirectoryInfo : System.IO.FileSystemInfo
+    {
+        public DirectoryInfo(string path) { }
+        public override bool Exists { get { throw null; } }
+        public override string Name { get { throw null; } }
+        public System.IO.DirectoryInfo? Parent { get { throw null; } }
+        public System.IO.DirectoryInfo Root { get { throw null; } }
+        public void Create() { }
+        public System.IO.DirectoryInfo CreateSubdirectory(string path) { throw null; }
+        public override void Delete() { }
+        public void Delete(bool recursive) { }
+        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories() { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles() { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos() { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos(string searchPattern) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public System.Collections.Generic.IEnumerable<System.IO.FileSystemInfo> EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public System.IO.DirectoryInfo[] GetDirectories() { throw null; }
+        public System.IO.DirectoryInfo[] GetDirectories(string searchPattern) { throw null; }
+        public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public System.IO.DirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public System.IO.FileInfo[] GetFiles() { throw null; }
+        public System.IO.FileInfo[] GetFiles(string searchPattern) { throw null; }
+        public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public System.IO.FileSystemInfo[] GetFileSystemInfos() { throw null; }
+        public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern) { throw null; }
+        public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { throw null; }
+        public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { throw null; }
+        public void MoveTo(string destDirName) { }
+        public override string ToString() { throw null; }
+    }
+    public enum MatchCasing
+    {
+        PlatformDefault = 0,
+        CaseSensitive = 1,
+        CaseInsensitive = 2,
+    }
+    public enum MatchType
+    {
+        Simple = 0,
+        Win32 = 1,
+    }
+    public enum SearchOption
+    {
+        TopDirectoryOnly = 0,
+        AllDirectories = 1,
+    }
+    public partial class EnumerationOptions
+    {
+        public EnumerationOptions() { }
+        public System.IO.FileAttributes AttributesToSkip { get { throw null; } set { } }
+        public int BufferSize { get { throw null; } set { } }
+        public bool IgnoreInaccessible { get { throw null; } set { } }
+        public System.IO.MatchCasing MatchCasing { get { throw null; } set { } }
+        public System.IO.MatchType MatchType { get { throw null; } set { } }
+        public int MaxRecursionDepth { get { throw null; } set { } }
+        public bool RecurseSubdirectories { get { throw null; } set { } }
+        public bool ReturnSpecialDirectories { get { throw null; } set { } }
+    }
+    public static partial class File
+    {
+        public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable<string> contents) { }
+        public static void AppendAllLines(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding) { }
+        public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static void AppendAllText(string path, string? contents) { }
+        public static void AppendAllText(string path, string? contents, System.Text.Encoding encoding) { }
+        public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string? contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Threading.Tasks.Task AppendAllTextAsync(string path, string? contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.IO.StreamWriter AppendText(string path) { throw null; }
+        public static void Copy(string sourceFileName, string destFileName) { }
+        public static void Copy(string sourceFileName, string destFileName, bool overwrite) { }
+        public static System.IO.FileStream Create(string path) { throw null; }
+        public static System.IO.FileStream Create(string path, int bufferSize) { throw null; }
+        public static System.IO.FileStream Create(string path, int bufferSize, System.IO.FileOptions options) { throw null; }
+        public static System.IO.StreamWriter CreateText(string path) { throw null; }
+        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
+        public static void Decrypt(string path) { }
+        public static void Delete(string path) { }
+        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
+        public static void Encrypt(string path) { }
+        public static bool Exists([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? path) { throw null; }
+        public static System.IO.FileAttributes GetAttributes(string path) { throw null; }
+        public static System.DateTime GetCreationTime(string path) { throw null; }
+        public static System.DateTime GetCreationTimeUtc(string path) { throw null; }
+        public static System.DateTime GetLastAccessTime(string path) { throw null; }
+        public static System.DateTime GetLastAccessTimeUtc(string path) { throw null; }
+        public static System.DateTime GetLastWriteTime(string path) { throw null; }
+        public static System.DateTime GetLastWriteTimeUtc(string path) { throw null; }
+        public static void Move(string sourceFileName, string destFileName) { }
+        public static void Move(string sourceFileName, string destFileName, bool overwrite) { }
+        public static System.IO.FileStream Open(string path, System.IO.FileMode mode) { throw null; }
+        public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { throw null; }
+        public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { throw null; }
+        public static System.IO.FileStream OpenRead(string path) { throw null; }
+        public static System.IO.StreamReader OpenText(string path) { throw null; }
+        public static System.IO.FileStream OpenWrite(string path) { throw null; }
+        public static byte[] ReadAllBytes(string path) { throw null; }
+        public static System.Threading.Tasks.Task<byte[]> ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static string[] ReadAllLines(string path) { throw null; }
+        public static string[] ReadAllLines(string path, System.Text.Encoding encoding) { throw null; }
+        public static System.Threading.Tasks.Task<string[]> ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Threading.Tasks.Task<string[]> ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static string ReadAllText(string path) { throw null; }
+        public static string ReadAllText(string path, System.Text.Encoding encoding) { throw null; }
+        public static System.Threading.Tasks.Task<string> ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Threading.Tasks.Task<string> ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> ReadLines(string path) { throw null; }
+        public static System.Collections.Generic.IEnumerable<string> ReadLines(string path, System.Text.Encoding encoding) { throw null; }
+        public static void Replace(string sourceFileName, string destinationFileName, string? destinationBackupFileName) { }
+        public static void Replace(string sourceFileName, string destinationFileName, string? destinationBackupFileName, bool ignoreMetadataErrors) { }
+        public static void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { }
+        public static void SetCreationTime(string path, System.DateTime creationTime) { }
+        public static void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { }
+        public static void SetLastAccessTime(string path, System.DateTime lastAccessTime) { }
+        public static void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { }
+        public static void SetLastWriteTime(string path, System.DateTime lastWriteTime) { }
+        public static void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { }
+        public static void WriteAllBytes(string path, byte[] bytes) { }
+        public static System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable<string> contents) { }
+        public static void WriteAllLines(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding) { }
+        public static void WriteAllLines(string path, string[] contents) { }
+        public static void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { }
+        public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable<string> contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static void WriteAllText(string path, string? contents) { }
+        public static void WriteAllText(string path, string? contents, System.Text.Encoding encoding) { }
+        public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string? contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public static System.Threading.Tasks.Task WriteAllTextAsync(string path, string? contents, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+    }
+    public sealed partial class FileInfo : System.IO.FileSystemInfo
+    {
+        public FileInfo(string fileName) { }
+        public System.IO.DirectoryInfo? Directory { get { throw null; } }
+        public string? DirectoryName { get { throw null; } }
+        public override bool Exists { get { throw null; } }
+        public bool IsReadOnly { get { throw null; } set { } }
+        public long Length { get { throw null; } }
+        public override string Name { get { throw null; } }
+        public System.IO.StreamWriter AppendText() { throw null; }
+        public System.IO.FileInfo CopyTo(string destFileName) { throw null; }
+        public System.IO.FileInfo CopyTo(string destFileName, bool overwrite) { throw null; }
+        public System.IO.FileStream Create() { throw null; }
+        public System.IO.StreamWriter CreateText() { throw null; }
+        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
+        public void Decrypt() { }
+        public override void Delete() { }
+        [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")]
+        public void Encrypt() { }
+        public void MoveTo(string destFileName) { }
+        public void MoveTo(string destFileName, bool overwrite) { }
+        public System.IO.FileStream Open(System.IO.FileMode mode) { throw null; }
+        public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { throw null; }
+        public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { throw null; }
+        public System.IO.FileStream OpenRead() { throw null; }
+        public System.IO.StreamReader OpenText() { throw null; }
+        public System.IO.FileStream OpenWrite() { throw null; }
+        public System.IO.FileInfo Replace(string destinationFileName, string? destinationBackupFileName) { throw null; }
+        public System.IO.FileInfo Replace(string destinationFileName, string? destinationBackupFileName, bool ignoreMetadataErrors) { throw null; }
+        public override string ToString() { throw null; }
+    }
     public enum HandleInheritability
     {
         None = 0,
@@ -7832,6 +8072,59 @@ namespace System.IO
         public override void WriteByte(byte value) { }
     }
 }
+namespace System.IO.Enumeration
+{
+    public ref partial struct FileSystemEntry
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public System.IO.FileAttributes Attributes { get { throw null; } }
+        public System.DateTimeOffset CreationTimeUtc { get { throw null; } }
+        public readonly System.ReadOnlySpan<char> Directory { get { throw null; } }
+        public System.ReadOnlySpan<char> FileName { get { throw null; } }
+        public bool IsDirectory { get { throw null; } }
+        public bool IsHidden { get { throw null; } }
+        public System.DateTimeOffset LastAccessTimeUtc { get { throw null; } }
+        public System.DateTimeOffset LastWriteTimeUtc { get { throw null; } }
+        public long Length { get { throw null; } }
+        public readonly System.ReadOnlySpan<char> OriginalRootDirectory { get { throw null; } }
+        public readonly System.ReadOnlySpan<char> RootDirectory { get { throw null; } }
+        public System.IO.FileSystemInfo ToFileSystemInfo() { throw null; }
+        public string ToFullPath() { throw null; }
+        public string ToSpecifiedFullPath() { throw null; }
+    }
+    public partial class FileSystemEnumerable<TResult> : System.Collections.Generic.IEnumerable<TResult>, System.Collections.IEnumerable
+    {
+        public FileSystemEnumerable(string directory, System.IO.Enumeration.FileSystemEnumerable<TResult>.FindTransform transform, System.IO.EnumerationOptions? options = null) { }
+        public System.IO.Enumeration.FileSystemEnumerable<TResult>.FindPredicate? ShouldIncludePredicate { get { throw null; } set { } }
+        public System.IO.Enumeration.FileSystemEnumerable<TResult>.FindPredicate? ShouldRecursePredicate { get { throw null; } set { } }
+        public System.Collections.Generic.IEnumerator<TResult> GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public delegate bool FindPredicate(ref System.IO.Enumeration.FileSystemEntry entry);
+        public delegate TResult FindTransform(ref System.IO.Enumeration.FileSystemEntry entry);
+    }
+    public abstract partial class FileSystemEnumerator<TResult> : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Collections.Generic.IEnumerator<TResult>, System.Collections.IEnumerator, System.IDisposable
+    {
+        public FileSystemEnumerator(string directory, System.IO.EnumerationOptions? options = null) { }
+        public TResult Current { get { throw null; } }
+        object? System.Collections.IEnumerator.Current { get { throw null; } }
+        protected virtual bool ContinueOnError(int error) { throw null; }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public bool MoveNext() { throw null; }
+        protected virtual void OnDirectoryFinished(System.ReadOnlySpan<char> directory) { }
+        public void Reset() { }
+        protected virtual bool ShouldIncludeEntry(ref System.IO.Enumeration.FileSystemEntry entry) { throw null; }
+        protected virtual bool ShouldRecurseIntoEntry(ref System.IO.Enumeration.FileSystemEntry entry) { throw null; }
+        protected abstract TResult TransformEntry(ref System.IO.Enumeration.FileSystemEntry entry);
+    }
+    public static partial class FileSystemName
+    {
+        public static bool MatchesSimpleExpression(System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase = true) { throw null; }
+        public static bool MatchesWin32Expression(System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase = true) { throw null; }
+        public static string TranslateWin32Expression(string? expression) { throw null; }
+    }
+}
 namespace System.Net
 {
     public static partial class WebUtility
index 4550352..cbe8cab 100644 (file)
@@ -17,4 +17,11 @@ MembersMustExist : Member 'public System.Runtime.Serialization.DeserializationTo
 MembersMustExist : Member 'public void System.Runtime.Serialization.SerializationInfo.ThrowIfDeserializationInProgress()' does not exist in the reference but it does exist in the implementation.
 MembersMustExist : Member 'public void System.Runtime.Serialization.SerializationInfo.ThrowIfDeserializationInProgress(System.String, System.Int32)' does not exist in the reference but it does exist in the implementation.
 MembersMustExist : Member 'public void System.Runtime.Serialization.SerializationInfo.UpdateValue(System.String, System.Object, System.Type)' does not exist in the reference but it does exist in the implementation.
-Total Issues: 18
+# These are now virtual in the implementation, which should be ok.
+CannotMakeMemberAbstract : Member 'public System.Boolean System.IO.FileSystemInfo.Exists' is abstract in the reference but is not abstract in the implementation.
+CannotMakeMemberAbstract : Member 'public System.String System.IO.FileSystemInfo.Name' is abstract in the reference but is not abstract in the implementation.
+CannotMakeMemberAbstract : Member 'public System.Boolean System.IO.FileSystemInfo.Exists.get()' is abstract in the reference but is not abstract in the implementation.
+CannotMakeMemberAbstract : Member 'public System.String System.IO.FileSystemInfo.Name.get()' is abstract in the reference but is not abstract in the implementation.
+# C# generates backing fields for fixed buffers as public.
+TypesMustExist : Type 'System.IO.Enumeration.FileSystemEntry.<_fileNameBuffer>e__FixedBuffer' does not exist in the reference but it does exist in the implementation.
+