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 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 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)); }