コード例 #1
0
        public static void Save(this ICassetteStorage storage, string path, IEnumerable <CassetteRecord> records)
        {
            var fileInfo = new FileInfo(path);

            if (fileInfo.Directory != null && !fileInfo.Directory.Exists)
            {
                Directory.CreateDirectory(fileInfo.Directory.FullName);
            }

            var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, FileOptions.SequentialScan);

            using var streamWriter = new StreamWriter(fileStream, Encoding.UTF8);
            storage.Save(streamWriter, records);
        }
コード例 #2
0
        public static IReadOnlyList <CassetteRecord> Load(this ICassetteStorage storage, string path)
        {
            var fileInfo = new FileInfo(path);

            if (!fileInfo.Exists)
            {
                return(Array.Empty <CassetteRecord>());
            }

            var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.SequentialScan);

            using var streamReader = new StreamReader(fileStream, Encoding.UTF8);
            return(storage.Load(streamReader));
        }
コード例 #3
0
 public static Cassette LoadCassette(this  ICassetteStorage storage, string path) => new Cassette(storage.Load(path));
コード例 #4
0
 public static Cassette LoadCassette(this  ICassetteStorage storage, TextReader textReader) => new Cassette(storage.Load(textReader));
コード例 #5
0
 public static void SaveCassette(this  ICassetteStorage storage, string path, Cassette cassette) => storage.Save(path, cassette.Records);
コード例 #6
0
 public static void SaveCassette(this  ICassetteStorage storage, TextWriter textWriter, Cassette cassette) => storage.Save(textWriter, cassette.Records);