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