예제 #1
0
        public DirectoryMemoryManager(IFileSystem fileSystem, string filename, IDirectoryMemory directoryMemory)
        {
            _fileSystem = fileSystem;
            _filename   = filename;

            DirectoryMemory = directoryMemory;
        }
예제 #2
0
        public async ValueTask Update(IDirectoryMemory directoryMemory)
        {
            var content = JsonConvert.SerializeObject(directoryMemory, JsonSerializerSettings);

            await using (var fileStream = _fileSystem.FileStream.Create(_filename, FileMode.OpenOrCreate))
            {
                await using (var textWriter = new StreamWriter(fileStream, Encoding.UTF8, 1024, true))
                    await textWriter.WriteAsync(content);

                fileStream.SetLength(fileStream.Position);
            }

            _fileSystem.File.SetAttributes(_filename, FileAttributes.Hidden);
            DirectoryMemory = directoryMemory;
        }