private string InitFilePath(string filePath) { if (!_isShadowCopy) { return(filePath); } var gen = new DefaultPathNameGenerator(postfix: ".xlsx"); var util = new DefaultTempUtil(fileNameGen: gen); var result = util.CreateFile(); using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (var ws = new FileStream(result, FileMode.Create, FileAccess.Write, FileShare.None)) { var read = 0L; var buffer = new byte[4096]; while (read < fs.Length) { var currentRead = fs.Read(buffer, 0, buffer.Length); read += currentRead; if (currentRead != 0) { ws.Write(buffer, 0, currentRead); } } } } return(result); }
public void DefaultTempFolderExists() { var tempProvider = new DefaultTempUtil(); var tempPath = tempProvider.GetTempDirectory(); Assert.True(Directory.Exists(tempPath)); var filenameGen = new DefaultPathNameGenerator(); filenameGen.Generate(tempPath); }
public void TestTAbleAccess() { var tfp = new DefaultTempUtil(); var fileName = ""; tfp.UseFile(tempFile => { fileName = tempFile; var server = SQLiteServer.FromPath(tempFile); var db = server.OpenDatabase("main"); var tables = db.ListTables(); }); Assert.True(!File.Exists(fileName)); }
public void TempFolderAllowsFileCreateAndDelete() { var tempUtil = new DefaultTempUtil(); var tempPath = tempUtil.GetTempDirectory(); var filenameGen = new DefaultPathNameGenerator(); var filePath = filenameGen.Generate(tempPath); Assert.False(File.Exists(filePath)); new DefaultFileUtil().Touch(filePath); Assert.True(File.Exists(filePath)); File.Delete(filePath); Assert.False(File.Exists(filePath)); }
public void TempFolderAllowsFolderCreateAndDelete() { var tempUtil = new DefaultTempUtil(); var tempPath = tempUtil.GetTempDirectory(); var filenameGen = new DefaultPathNameGenerator(); var folderPath = filenameGen.Generate(tempPath); Assert.False(Directory.Exists(folderPath)); Directory.CreateDirectory(folderPath); Assert.True(Directory.Exists(folderPath)); Directory.Delete(folderPath); Assert.False(Directory.Exists(folderPath)); }
public void BasicLoremIpsumGeneratorToFileTest() { var random = new DefaultRandom(12345); var gen = new LoremIpsumGenerator(random); var tmp = new DefaultTempUtil(); tmp.UseFile(tempFile => { using (var writer = new StreamWriter(tempFile)) gen.WriteText(10, writer); var fileContents = File.ReadAllText(tempFile); Assert.Equal("lorem ipsum dolor sit amet stet kasd gubergren tempor ipsum", fileContents); }); }
public void TempFilesWithCustomExtension() { var nameGenerator = new DefaultPathNameGenerator(postfix: ".txt"); var tmp = new DefaultTempUtil(fileNameGen: nameGenerator); var tempFilePathCopy = ""; tmp.UseFile(tempFilePath => { tempFilePathCopy = tempFilePath; var fi = new FileInfo(tempFilePath); Assert.True(fi.Exists); Assert.Equal(0, fi.Length); Assert.EndsWith(".txt", tempFilePath); }); Assert.False(File.Exists(tempFilePathCopy)); }
public void TestDatabaseAccess() { var tfp = new DefaultTempUtil(); var fileName = ""; tfp.UseFile(tempFile => { fileName = tempFile; var server = SQLiteServer.FromPath(tempFile); var allDatabases = server.ListDatabases(); Assert.StartsWith("3", server.Version); Assert.Single(allDatabases); var db = allDatabases[0]; var settings = db.Settings as SQLiteDatabaseSettings ?? throw new InvalidOperationException("settings must be sqlite"); Assert.Equal("main", db.Name); Assert.Equal(tempFile, settings.Path); }); Assert.True(!File.Exists(fileName)); }
public void BasicTest() { var tmp = new DefaultTempUtil(); var tempDirPath = ""; var tempDirPath2 = ""; tmp.UseDir(tempDir1 => { tempDirPath = tempDir1; Assert.True(Directory.Exists(tempDir1)); tmp.UseDir(tempDir1, tempDir2 => { tempDirPath2 = tempDir2; Assert.True(Directory.Exists(tempDir2)); Assert.Equal(tempDir1, Path.GetDirectoryName(tempDirPath2)); }); Assert.False(Directory.Exists(tempDirPath2)); }); Assert.False(Directory.Exists(tempDirPath)); }