public void TestIO(string inner_path, byte[] data, int chunk_size) { var file_system = new FileSystem(":memory:"); // Try to load a non-existing file Assert.Throws <MatryoshkaException>(() => { file_system.Open(inner_path); }); using (var tmp_dir = new TemporaryDirectory()) { var input_file = tmp_dir.GetFile("input_file", data); var output_file = tmp_dir.GetFile("output_file"); // Push file var file = file_system.Push(inner_path, input_file, chunk_size); Assert.Equal(file.Size, data.Length); // It is forbidden to override included files Assert.Throws <MatryoshkaException>(() => { file_system.Push(inner_path, input_file, chunk_size); }); // Load file and verify content var loaded_file = file_system.Open(inner_path); loaded_file.Pull(output_file); Assert.Equal(data, System.IO.File.ReadAllBytes(output_file)); // Check delete Assert.True(file.Delete()); Assert.Throws <MatryoshkaException>(() => { file_system.Open(inner_path); }); } }
public void SaveToZip(FileInfo saveFile) { //var initialDirectory = FileUtils.AppFolder.GetSubFolder("Data"); //initialDirectory.EnsureExists(); using (var tempDir = new TemporaryDirectory("Jeremy")) { var temp = tempDir.GetFile("data.xml"); using (Stream saveStream = new FileStream(temp.FullName, FileMode.Create)) { XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollection <Philosopher>)); serializer.Serialize(saveStream, MainWin.Pvm.m_philosophers); var path = FileUtils.AppFolder.GetSubFolder("Images"); var res = path.CopyMeTo(tempDir.Directory.GetSubFolder("Images").FullName); ZipUtility.ZipUpFolder(tempDir.Directory, saveFile); //DirectoryInfo dir2 = new DirectoryInfo(initialDirectory.FullName + @"\" + "data.zip"); //Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile(); //zip.AddFile(temp.FullName, @"\"); //zip.AddDirectory(path.FullName); //zip.Save(dir2.FullName); } } }
public void TestFind() { var file_system = new FileSystem(":memory:"); using (var tmp_dir = new TemporaryDirectory()) { var input_file_1 = tmp_dir.GetFile("input_file_1", new byte[] { 42, 32, 44 }); var input_file_2 = tmp_dir.GetFile("input_file_2", new byte[] { 45, 46, 47 }); var input_file_3 = tmp_dir.GetFile("input_file_3", new byte[] { 48, 49, 50 }); // Push files file_system.Push("folder1/file1", input_file_1, -1); file_system.Push("folder1/file2", input_file_2, -1); file_system.Push("folder2/file1", input_file_3, -1); // Check find Assert.Equal(3, file_system.Find("*").Count); Assert.Equal(2, file_system.Find("folder?/file1").Count); Assert.Equal(2, file_system.Find("*/file1").Count); Assert.Equal(1, file_system.Find("folder2/*").Count); } }