public void IsolatedStorageFileSystemAtSubDirectory_AccessesIsolatedStorageSubDirectory() { using (var store = IsolatedStorageFile.GetMachineStoreForAssembly()) { store.CreateDirectory("sub"); using (var writer = new StreamWriter(store.OpenFile("sub\\test.txt", FileMode.Create, FileAccess.Write))) { writer.Write("test"); writer.Flush(); } var directory = new IsolatedStorageDirectory(store); var subDirectory = directory.GetDirectory("sub", false); var file = subDirectory.GetFile("test.txt"); file.Exists.ShouldBeTrue(); using (var reader = new StreamReader(file.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { reader.ReadToEnd().ShouldEqual("test"); } subDirectory.DeleteContents(); store.FileExists("sub\\test.txt").ShouldBeFalse(); } }
public IsolatedStorageFile(string filename, Func<Storage> getStorage, IsolatedStorageDirectory directory) { this.filename = filename; this.getStorage = getStorage; this.directory = directory; systemFilename = filename.Substring(2); // Skip the "~/" prefix. }
public IsolatedStorageFile(string filename, System.IO.IsolatedStorage.IsolatedStorageFile storage, IsolatedStorageDirectory directory) { this.filename = filename; this.storage = storage; this.directory = directory; systemFilename = filename.Substring(2); // Skip the "~/" prefix. }
public IsolatedStorageFileWrapper_Tests() { storage = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForAssembly(); directory = new IsolatedStorageDirectory(storage); using (var stream = storage.CreateFile("exists.js")) { "content".AsStream().CopyTo(stream); stream.Flush(); } }
public void GetFileReturnsWrapper() { storage.CreateFile("test.js").Close(); var directory = new IsolatedStorageDirectory(storage); var file = directory.GetFile("test.js"); file.ShouldBeType<IsolatedStorageFile>(); file.FullPath.ShouldEqual("~/test.js"); file.Directory.ShouldBeSameAs(directory); }
public void GetFilesReturnsFileWrappers() { storage.CreateFile("test1.js").Close(); storage.CreateFile("test2.js").Close(); var directory = new IsolatedStorageDirectory(storage); var files = directory.GetFiles("*", SearchOption.AllDirectories).ToArray(); files[0].ShouldBeType<IsolatedStorageFile>(); files[0].FullPath.ShouldEqual("~/test1.js"); files[1].ShouldBeType<IsolatedStorageFile>(); files[1].FullPath.ShouldEqual("~/test2.js"); }
public void CanDeleteSubDirectoryWithContents() { storage.CreateDirectory("test"); WriteFile("test/file.txt"); storage.CreateDirectory("test/sub"); WriteFile("test/sub/file.txt"); var directory = new IsolatedStorageDirectory(() => storage); var subDirectory = directory.GetDirectory("test"); subDirectory.Delete(); storage.GetDirectoryNames("*").ShouldBeEmpty(); }
public IsolatedStorageFile(string filename, Storage storage, IsolatedStorageDirectory directory) : this(filename, () => storage, directory) { }
public IFile GetFile(string filename) { filename = GetAbsolutePath(filename); var parts = filename.Split('/', '\\'); IsolatedStorageDirectory directory; if (parts.Length > 2) { var subDirectory = string.Join("/", parts.Reverse().Skip(1).Reverse().ToArray()); directory = new IsolatedStorageDirectory(getStorage, subDirectory); } else { directory = this; } return new IsolatedStorageFile(filename, getStorage, directory); }
public void FullPathDefaultsToForwardSlash() { var directory = new IsolatedStorageDirectory(storage); directory.FullPath.ShouldEqual("~/"); }
public void WhenGetFileInSubDirectoryFromRoot_ThenFilesDirectoryIsTheSubDirectory() { storage.CreateDirectory("test/sub"); WriteFile("test/sub/file.txt"); var root = new IsolatedStorageDirectory(() => storage); var file = root.GetFile("test/sub/file.txt"); file.Directory.FullPath.ShouldEqual("~/test/sub"); }