IO abstraction
Overview
// Get the current directory path
var currentDirPath = System.IO.Directory.GetCurrentDirectory();
var localFS = new LocalFileSystem(currentDirPath);
// Get the "MyTemplates" directory
var currentDir = localFS.GetDirectory("MyTemplates");
// Get a list of files in the "MyTemplates" directory
var files = currentDir.EnumerateFiles();
// Get the first file
var firstFile = files.FirstOrDefault();
// Read the first 20 bytes of the file
var inStream = firstFile.OpenRead();
var buffer = new byte[20];
inStream.Read(buffer);
inStream.Dispose();
// Convert buffer to string
string firstString = System.Text.Encoding.Default.GetString(buffer);
var dirListing = "Directory_Listing.txt";
// Check for unique file name
var isNotUnique = localFS.CheckUniqueFileName(dirListing, out var uniqueDirListing);
// Create new file instance
var file = localFS.CreateFile(isNotUnique ? uniqueDirListing : dirListing);
// Create some content
var numberOfFiles = currentDir.CountFiles(deep: false);
var fileNames = new string[files.Count()];
// List all files in current directory
for (var i = 0; i < numberOfFiles; i++)
{
fileNames[i] = files.ElementAt(i).Name;
}
var content = $"The first File in this directory starts with:\n\"{firstString}\"\n\n"
+ $"The {numberOfFiles} files included are:\n\n" + fileNames.StrJoin("\n");
// Write contents to file
var outStream = file.OpenWrite();
outStream.Write(content.ToAsciiBytes());
outStream.Dispose();Adapters & decorators
ExpandedFileSystem
CompositeFileSystem
Special utilities
DirectoryHasher
Last updated
Was this helpful?