Skip to content
rifraf edited this page Sep 14, 2010 · 3 revisions

Read into String

Files can be read directly into a String.

Serfs serfs;
serfs = new Serfs("TestTemplates");

// Read in binary form (will include \r\n)
string sb = _serfs.Read("test.txt");   

// Read in text form (\r\n translated to \n)
string st = _serfs.ReadText("test.txt");

Precondition: The embedded resource ‘test.txt. exists in the current assembly in a folder called ’TestTemplates’

Open as a Stream

Files can be accessed as a Stream.

Serfs serfs;
serfs = new Serfs("TestTemplates");
Stream stream = serfs.OpenRead("test.txt")

Subfolders

Files are organized into folders

Serfs serfs;
serfs = new Serfs("TestTemplates");
string s1 = serfs.Read("Files/HelloSerfs.txt"));
string s2 = serfs.Read("Files\\HelloSerfs.txt"));

Selecting resources

You can select which folders are used by specifying the root folders. All selected folders are merged into one virtual disk.

Serfs serfs;
serfs = new Serfs("TestTemplates");  // Adds all files in the TestTemplates folder
serfs.Mount("MoreTemplates");  // Adds all files in the MoreTemplates folder
...

Combining Assemblies

Embedded resources can be leaded from separate assemblies.

Serfs serfs;
serfs = new Serfs("TestTemplates");
serfs.AddAssembly("ResourcesForSerfsTest", "Files")
Stream stream = serfs.OpenRead("HelloSerfs.txt")
...

Or alternate form:

Serfs serfs;
serfs = new Serfs("TestTemplates");
serfs.AddAssembly("ResourcesForSerfsTest")
Stream stream = serfs.OpenRead("Files/HelloSerfs.txt")
...

Check if a file exists

Serfs serfs;
serfs = new Serfs("TestTemplates");
if (serfs.Exists("test.txt")) {
  ...
}

Check if a folder exists

Serfs serfs;
serfs = new Serfs("TestTemplates");
if (serfs.FolderExists("1.2.3")) {
  ...
}