File: FileSystem.cs
Web Access
Project: src\src\Razor\src\Razor\src\Microsoft.CodeAnalysis.Razor.Workspaces\Microsoft.CodeAnalysis.Razor.Workspaces.csproj (Microsoft.CodeAnalysis.Razor.Workspaces)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Collections.Generic;
using System.IO;
 
namespace Microsoft.CodeAnalysis.Razor.Workspaces;
 
internal sealed class FileSystem : IFileSystem
{
    public IEnumerable<string> GetFiles(string workspaceDirectory, string searchPattern, SearchOption searchOption)
        => Directory.GetFiles(workspaceDirectory, searchPattern, searchOption);
 
    public IEnumerable<string> GetDirectories(string workspaceDirectory)
        => Directory.GetDirectories(workspaceDirectory);
 
    public bool FileExists(string filePath)
        => File.Exists(filePath);
 
    public string ReadFile(string filePath)
        => File.ReadAllText(filePath);
 
    public Stream OpenReadStream(string filePath)
        => new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete);
 
    public void Move(string sourceFilePath, string destinationFilePath)
        => File.Move(sourceFilePath, destinationFilePath);
}