using System; using System.IO; using System.Text; namespace MfGames.Nitride.Contents; /// /// A text content provider based on a file in the file system. /// public class FileTextContent : ITextContent, IBinaryContentConvertable { private readonly string path; public FileTextContent(string path) { this.path = path ?? throw new ArgumentNullException(nameof(path)); } public FileTextContent(FileInfo file) { if (file == null) { throw new ArgumentNullException(nameof(file)); } this.path = file.FullName; } /// public TextReader GetReader() { return new StreamReader( File.Open( this.path, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.UTF8); } /// public IBinaryContent ToBinaryContent() { return new FileBinaryContent(this.path); } }