public FileSystemPackageProvider(string filename, Modes mode)
: base(mode)
{
if (string.IsNullOrEmpty(filename)) throw new ArgumentNullException("filename");
_fileName = filename;
_blobDir = Path.Combine(Path.GetDirectoryName(_fileName), Path.GetFileNameWithoutExtension(_fileName));
switch (mode)
{
case Modes.Read:
_data = File.OpenRead(_fileName);
break;
case Modes.Write:
var basedir = Path.GetDirectoryName(_fileName);
if (!string.IsNullOrWhiteSpace(basedir) && !Directory.Exists(basedir))
{
Directory.CreateDirectory(basedir);
}
Directory.CreateDirectory(_blobDir);
_data = File.OpenWrite(_fileName);
_data.SetLength(0);
break;
default:
throw new NotSupportedException();
}
}