mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-11-27 14:59:16 +08:00
[Deps]Upgrade System.IO.Abstractions (#35656)
* Upgrade System.IO.Abstractions to the latest stable release
This commit is contained in:
parent
3d306f6177
commit
2ea9d56129
@ -321,6 +321,10 @@
|
||||
"WinUI3Apps\\ReverseMarkdown.dll",
|
||||
"WinUI3Apps\\SharpCompress.dll",
|
||||
"WinUI3Apps\\ZstdSharp.dll",
|
||||
"TestableIO.System.IO.Abstractions.dll",
|
||||
"WinUI3Apps\\TestableIO.System.IO.Abstractions.dll",
|
||||
"TestableIO.System.IO.Abstractions.Wrappers.dll",
|
||||
"WinUI3Apps\\TestableIO.System.IO.Abstractions.Wrappers.dll",
|
||||
"ColorCode.Core.dll",
|
||||
"ColorCode.UWP.dll",
|
||||
"UnitsNet.dll",
|
||||
|
@ -73,8 +73,8 @@
|
||||
<!-- Package System.Diagnostics.EventLog added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Data.OleDb but the 8.0.1 version wasn't published to nuget. -->
|
||||
<PackageVersion Include="System.Diagnostics.EventLog" Version="8.0.1" />
|
||||
<PackageVersion Include="System.Drawing.Common" Version="8.0.7" />
|
||||
<PackageVersion Include="System.IO.Abstractions" Version="17.2.3" />
|
||||
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="17.2.3" />
|
||||
<PackageVersion Include="System.IO.Abstractions" Version="21.0.29" />
|
||||
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="21.0.29" />
|
||||
<PackageVersion Include="System.Management" Version="8.0.0" />
|
||||
<PackageVersion Include="System.Reactive" Version="6.0.1" />
|
||||
<PackageVersion Include="System.Runtime.Caching" Version="8.0.1" />
|
||||
|
@ -1354,8 +1354,8 @@ EXHIBIT A -Mozilla Public License.
|
||||
- System.Data.SqlClient 4.8.6
|
||||
- System.Diagnostics.EventLog 8.0.1
|
||||
- System.Drawing.Common 8.0.7
|
||||
- System.IO.Abstractions 17.2.3
|
||||
- System.IO.Abstractions.TestingHelpers 17.2.3
|
||||
- System.IO.Abstractions 21.0.29
|
||||
- System.IO.Abstractions.TestingHelpers 21.0.29
|
||||
- System.Management 8.0.0
|
||||
- System.Reactive 6.0.1
|
||||
- System.Runtime.Caching 8.0.1
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Abstractions;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
@ -23,15 +22,14 @@ namespace ManagedCommon
|
||||
|
||||
public static string LoadLanguage()
|
||||
{
|
||||
FileSystem fileSystem = new FileSystem();
|
||||
var localAppDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
|
||||
var file = localAppDataDir + SettingsFilePath + SettingsFile;
|
||||
|
||||
if (fileSystem.File.Exists(file))
|
||||
if (File.Exists(file))
|
||||
{
|
||||
try
|
||||
{
|
||||
Stream inputStream = fileSystem.File.Open(file, FileMode.Open);
|
||||
var inputStream = File.Open(file, FileMode.Open);
|
||||
StreamReader reader = new StreamReader(inputStream);
|
||||
string data = reader.ReadToEnd();
|
||||
inputStream.Close();
|
||||
|
@ -5,7 +5,7 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO.Abstractions;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
using PowerToys.Interop;
|
||||
@ -14,7 +14,6 @@ namespace ManagedCommon
|
||||
{
|
||||
public static class Logger
|
||||
{
|
||||
private static readonly IFileSystem _fileSystem = new FileSystem();
|
||||
private static readonly Assembly Assembly = Assembly.GetExecutingAssembly();
|
||||
private static readonly string Version = FileVersionInfo.GetVersionInfo(Assembly.Location).ProductVersion;
|
||||
|
||||
@ -41,12 +40,12 @@ namespace ManagedCommon
|
||||
applicationLogPath = Constants.AppDataPath() + applicationLogPath + "\\" + Version;
|
||||
}
|
||||
|
||||
if (!_fileSystem.Directory.Exists(applicationLogPath))
|
||||
if (!Directory.Exists(applicationLogPath))
|
||||
{
|
||||
_fileSystem.Directory.CreateDirectory(applicationLogPath);
|
||||
Directory.CreateDirectory(applicationLogPath);
|
||||
}
|
||||
|
||||
var logFilePath = _fileSystem.Path.Combine(applicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".txt");
|
||||
var logFilePath = Path.Combine(applicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".txt");
|
||||
|
||||
Trace.Listeners.Add(new TextWriterTraceListener(logFilePath));
|
||||
|
||||
|
@ -15,7 +15,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.IO.Abstractions" />
|
||||
<PackageReference Include="System.Management" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -276,7 +276,7 @@ namespace Hosts.Tests
|
||||
|
||||
service.RemoveReadOnlyAttribute();
|
||||
|
||||
var readOnly = fileSystem.FileInfo.FromFileName(service.HostsFilePath).Attributes.HasFlag(FileAttributes.ReadOnly);
|
||||
var readOnly = fileSystem.FileInfo.New(service.HostsFilePath).Attributes.HasFlag(FileAttributes.ReadOnly);
|
||||
Assert.IsFalse(readOnly);
|
||||
}
|
||||
|
||||
@ -295,7 +295,7 @@ namespace Hosts.Tests
|
||||
|
||||
await service.WriteAsync("# Empty hosts file", Enumerable.Empty<Entry>());
|
||||
|
||||
var hidden = fileSystem.FileInfo.FromFileName(service.HostsFilePath).Attributes.HasFlag(FileAttributes.Hidden);
|
||||
var hidden = fileSystem.FileInfo.New(service.HostsFilePath).Attributes.HasFlag(FileAttributes.Hidden);
|
||||
Assert.IsTrue(hidden);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
@ -9,7 +10,7 @@ using System.IO.Abstractions;
|
||||
|
||||
namespace Hosts.Tests.Mocks
|
||||
{
|
||||
public class MockFileSystemWatcher : FileSystemWatcherBase
|
||||
public partial class MockFileSystemWatcher : FileSystemWatcherBase
|
||||
{
|
||||
public override bool IncludeSubdirectories { get; set; }
|
||||
|
||||
@ -27,26 +28,35 @@ namespace Hosts.Tests.Mocks
|
||||
|
||||
public override ISynchronizeInvoke SynchronizingObject { get; set; }
|
||||
|
||||
public override Collection<string> Filters => throw new System.NotImplementedException();
|
||||
public override Collection<string> Filters => throw new NotImplementedException();
|
||||
|
||||
public override WaitForChangedResult WaitForChanged(WatcherChangeTypes changeType) => default;
|
||||
public override IFileSystem FileSystem => throw new NotImplementedException();
|
||||
|
||||
public override WaitForChangedResult WaitForChanged(WatcherChangeTypes changeType, int timeout) => default;
|
||||
public override IContainer Container => throw new NotImplementedException();
|
||||
|
||||
public MockFileSystemWatcher(string path) => Path = path;
|
||||
public override void BeginInit() => throw new NotImplementedException();
|
||||
|
||||
public override void EndInit() => throw new NotImplementedException();
|
||||
|
||||
public override IWaitForChangedResult WaitForChanged(WatcherChangeTypes changeType, TimeSpan timeout) => throw new NotImplementedException();
|
||||
|
||||
public override IWaitForChangedResult WaitForChanged(WatcherChangeTypes changeType) => throw new NotImplementedException();
|
||||
|
||||
public override IWaitForChangedResult WaitForChanged(WatcherChangeTypes changeType, int timeout) => throw new NotImplementedException();
|
||||
|
||||
public MockFileSystemWatcher()
|
||||
{
|
||||
}
|
||||
|
||||
public MockFileSystemWatcher(string path)
|
||||
{
|
||||
Path = path;
|
||||
}
|
||||
|
||||
public MockFileSystemWatcher(string path, string filter)
|
||||
{
|
||||
Path = path;
|
||||
Filter = filter;
|
||||
}
|
||||
|
||||
public override void BeginInit()
|
||||
{
|
||||
}
|
||||
|
||||
public override void EndInit()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,18 +2,22 @@
|
||||
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Abstractions;
|
||||
|
||||
namespace Hosts.Tests.Mocks
|
||||
{
|
||||
public class MockFileSystemWatcherFactory : IFileSystemWatcherFactory
|
||||
{
|
||||
public IFileSystemWatcher CreateNew() => new MockFileSystemWatcher(null);
|
||||
public IFileSystem FileSystem => throw new NotImplementedException();
|
||||
|
||||
public IFileSystemWatcher CreateNew(string path) => new MockFileSystemWatcher(path);
|
||||
public IFileSystemWatcher New() => new MockFileSystemWatcher();
|
||||
|
||||
public IFileSystemWatcher CreateNew(string path, string filter) => new MockFileSystemWatcher(path, filter);
|
||||
public IFileSystemWatcher New(string path) => new MockFileSystemWatcher(path);
|
||||
|
||||
public IFileSystemWatcher FromPath(string path) => new MockFileSystemWatcher(path);
|
||||
public IFileSystemWatcher New(string path, string filter) => new MockFileSystemWatcher(path, filter);
|
||||
|
||||
public IFileSystemWatcher Wrap(FileSystemWatcher fileSystemWatcher) => throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ namespace HostsUILib.Helpers
|
||||
|
||||
_hostsFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), @"System32\drivers\etc\hosts");
|
||||
|
||||
_fileSystemWatcher = _fileSystem.FileSystemWatcher.CreateNew();
|
||||
_fileSystemWatcher = _fileSystem.FileSystemWatcher.New();
|
||||
_fileSystemWatcher.Path = _fileSystem.Path.GetDirectoryName(HostsFilePath);
|
||||
_fileSystemWatcher.Filter = _fileSystem.Path.GetFileName(HostsFilePath);
|
||||
_fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite;
|
||||
@ -130,7 +130,7 @@ namespace HostsUILib.Helpers
|
||||
throw new NotRunningElevatedException();
|
||||
}
|
||||
|
||||
if (_fileSystem.FileInfo.FromFileName(HostsFilePath).IsReadOnly)
|
||||
if (_fileSystem.FileInfo.New(HostsFilePath).IsReadOnly)
|
||||
{
|
||||
throw new ReadOnlyHostsException();
|
||||
}
|
||||
@ -200,7 +200,7 @@ namespace HostsUILib.Helpers
|
||||
}
|
||||
|
||||
// FileMode.OpenOrCreate is necessary to prevent UnauthorizedAccessException when the hosts file is hidden
|
||||
using var stream = _fileSystem.FileStream.Create(HostsFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read, _defaultBufferSize, FileOptions.Asynchronous);
|
||||
using var stream = _fileSystem.FileStream.New(HostsFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read, _defaultBufferSize, FileOptions.Asynchronous);
|
||||
using var writer = new StreamWriter(stream, Encoding);
|
||||
foreach (var line in lines)
|
||||
{
|
||||
@ -305,7 +305,7 @@ namespace HostsUILib.Helpers
|
||||
|
||||
public void RemoveReadOnlyAttribute()
|
||||
{
|
||||
var fileInfo = _fileSystem.FileInfo.FromFileName(HostsFilePath);
|
||||
var fileInfo = _fileSystem.FileInfo.New(HostsFilePath);
|
||||
if (fileInfo.IsReadOnly)
|
||||
{
|
||||
fileInfo.IsReadOnly = false;
|
||||
|
@ -31,7 +31,7 @@ namespace WorkspacesEditor.Utils
|
||||
{
|
||||
try
|
||||
{
|
||||
using (Stream inputStream = _fileSystem.File.Open(fileName, FileMode.Open))
|
||||
using (FileSystemStream inputStream = _fileSystem.File.Open(fileName, FileMode.Open))
|
||||
using (StreamReader reader = new StreamReader(inputStream))
|
||||
{
|
||||
string data = reader.ReadToEnd();
|
||||
|
@ -31,7 +31,7 @@ namespace FancyZonesEditorCommon.Utils
|
||||
{
|
||||
try
|
||||
{
|
||||
using (Stream inputStream = _fileSystem.File.Open(fileName, FileMode.Open))
|
||||
using (FileSystemStream inputStream = _fileSystem.File.Open(fileName, FileMode.Open))
|
||||
using (StreamReader reader = new StreamReader(inputStream))
|
||||
{
|
||||
string data = reader.ReadToEnd();
|
||||
|
@ -27,7 +27,11 @@ namespace Microsoft.FancyZonesEditor.UITests.Utils
|
||||
}
|
||||
else
|
||||
{
|
||||
_fileSystem.Directory.CreateDirectory(Path.GetDirectoryName(file));
|
||||
var path = Path.GetDirectoryName(file);
|
||||
if (path != null)
|
||||
{
|
||||
_fileSystem.Directory.CreateDirectory(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -421,7 +421,7 @@ namespace ImageResizer.Properties
|
||||
string jsonData = JsonSerializer.Serialize(new SettingsWrapper() { Properties = this }, _jsonSerializerOptions);
|
||||
|
||||
// Create directory if it doesn't exist
|
||||
IFileInfo file = _fileSystem.FileInfo.FromFileName(SettingsPath);
|
||||
IFileInfo file = _fileSystem.FileInfo.New(SettingsPath);
|
||||
file.Directory.Create();
|
||||
|
||||
// write string to file
|
||||
|
@ -51,7 +51,7 @@ namespace Microsoft.Plugin.Folder.UnitTests
|
||||
[DataRow(@"c:", 2, 1, false, DisplayName = "Root without \\")]
|
||||
[DataRow(@"c:\", 2, 1, false, DisplayName = "Normal root")]
|
||||
[DataRow(@"c:\Test", 2, 2, false, DisplayName = "Select yourself")]
|
||||
[DataRow(@"c:\not-exist", 2, 1, false, DisplayName = "Folder not exist, return root")]
|
||||
[DataRow(@"c:\not-exist", 2, 0, false, DisplayName = "Folder not exist, return root")]
|
||||
[DataRow(@"c:\not-exist\not-exist2", 0, 0, false, DisplayName = "Folder not exist, return root")]
|
||||
[DataRow(@"c:\bla.t", 2, 1, false, DisplayName = "Partial match file")]
|
||||
[DataRow(@"c:/bla.t", 2, 1, false, DisplayName = "Partial match file with /")]
|
||||
@ -88,8 +88,8 @@ namespace Microsoft.Plugin.Folder.UnitTests
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow(@"c:\>", 3, 3, true, DisplayName = "Max Folder test recursive")]
|
||||
[DataRow(@"c:\Test>", 3, 3, true, DisplayName = "2 Folders recursive")]
|
||||
[DataRow(@"c:\not-exist>", 3, 3, true, DisplayName = "Folder not exist, return root recursive")]
|
||||
[DataRow(@"c:\Test>", 3, 0, true, DisplayName = "2 Folders recursive")]
|
||||
[DataRow(@"c:\not-exist>", 3, 0, true, DisplayName = "Folder not exist, return root recursive")]
|
||||
[DataRow(@"c:\not-exist\not-exist2>", 0, 0, false, DisplayName = "Folder not exist, return root recursive")]
|
||||
public void Query_Recursive_WhenCalled(string search, int folders, int files, bool truncated)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@ namespace Microsoft.Plugin.Folder.Sources
|
||||
public IEnumerable<DisplayFileInfo> MatchFileSystemInfo(string search, string incompleteName, bool isRecursive)
|
||||
{
|
||||
// search folder and add results
|
||||
var directoryInfo = _directoryInfoFactory.FromDirectoryName(search);
|
||||
var directoryInfo = _directoryInfoFactory.New(search);
|
||||
var fileSystemInfos = directoryInfo.EnumerateFileSystemInfos(incompleteName, new EnumerationOptions
|
||||
{
|
||||
MatchType = _matchType,
|
||||
|
@ -22,7 +22,7 @@ namespace Microsoft.Plugin.Program
|
||||
|
||||
public string Location { get; set; }
|
||||
|
||||
public string Name { get => name ?? FileSystem.DirectoryInfo.FromDirectoryName(Location).Name; set => name = value; }
|
||||
public string Name { get => name ?? FileSystem.DirectoryInfo.New(Location).Name; set => name = value; }
|
||||
|
||||
public bool Enabled { get; set; } = true;
|
||||
|
||||
|
@ -71,8 +71,8 @@ namespace Wox.Infrastructure
|
||||
}
|
||||
else
|
||||
{
|
||||
var time1 = FileInfo.FromFileName(bundledDataPath).LastWriteTimeUtc;
|
||||
var time2 = FileInfo.FromFileName(dataPath).LastWriteTimeUtc;
|
||||
var time1 = FileInfo.New(bundledDataPath).LastWriteTimeUtc;
|
||||
var time2 = FileInfo.New(dataPath).LastWriteTimeUtc;
|
||||
if (time1 != time2)
|
||||
{
|
||||
File.Copy(bundledDataPath, dataPath, true);
|
||||
|
@ -30,7 +30,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
|
||||
{
|
||||
try
|
||||
{
|
||||
Stream inputStream = fileSystem.File.Open(file, FileMode.Open);
|
||||
FileSystemStream inputStream = fileSystem.File.Open(file, FileMode.Open);
|
||||
StreamReader reader = new StreamReader(inputStream);
|
||||
string data = reader.ReadToEnd();
|
||||
inputStream.Close();
|
||||
|
@ -102,7 +102,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
|
||||
{
|
||||
try
|
||||
{
|
||||
Stream inputStream = fileSystem.File.Open(file, FileMode.Open);
|
||||
FileSystemStream inputStream = fileSystem.File.Open(file, FileMode.Open);
|
||||
StreamReader reader = new StreamReader(inputStream);
|
||||
string data = reader.ReadToEnd();
|
||||
inputStream.Close();
|
||||
|
@ -7,7 +7,6 @@ using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.IO.Abstractions;
|
||||
using System.Linq;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Security.Principal;
|
||||
|
||||
using Microsoft.PowerToys.Settings.UI.Library.CustomAction;
|
||||
@ -63,7 +62,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.Utilities
|
||||
FileSystem.Directory.CreateDirectory(path);
|
||||
}
|
||||
|
||||
var watcher = FileSystem.FileSystemWatcher.CreateNew();
|
||||
var watcher = FileSystem.FileSystemWatcher.New();
|
||||
watcher.Path = path;
|
||||
watcher.Filter = fileName;
|
||||
watcher.NotifyFilter = NotifyFilters.LastWrite;
|
||||
|
@ -54,7 +54,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views
|
||||
|
||||
var settingsPath = _settingsUtils.GetSettingsFilePath(_appName);
|
||||
|
||||
_fileSystemWatcher = _fileSystem.FileSystemWatcher.CreateNew();
|
||||
_fileSystemWatcher = _fileSystem.FileSystemWatcher.New();
|
||||
_fileSystemWatcher.Path = _fileSystem.Path.GetDirectoryName(settingsPath);
|
||||
_fileSystemWatcher.Filter = _fileSystem.Path.GetFileName(settingsPath);
|
||||
_fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.CreationTime;
|
||||
|
Loading…
Reference in New Issue
Block a user