Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public void DefaultTempFolderExists()
        {
            var tempProvider = new DefaultTempUtil();
            var tempPath     = tempProvider.GetTempDirectory();

            Assert.True(Directory.Exists(tempPath));

            var filenameGen = new DefaultPathNameGenerator();

            filenameGen.Generate(tempPath);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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));
        }