public static CreateTempFile ( ) : |
||
return |
internal static string MaybeCreateTempFile(bool removeAfterClass = true) { string result = null; Stream temp = null; if (LuceneTestCase.TestLineDocsFile == LuceneTestCase.DEFAULT_LINE_DOCS_FILE) // Always GZipped { temp = typeof(LineFileDocs).FindAndGetManifestResourceStream(LuceneTestCase.TestLineDocsFile); } else if (LuceneTestCase.TestLineDocsFile.EndsWith(".gz", StringComparison.Ordinal)) { temp = new FileStream(LuceneTestCase.TestLineDocsFile, FileMode.Open, FileAccess.Read, FileShare.Read); } if (null != temp) { var file = removeAfterClass ? LuceneTestCase.CreateTempFile(TEMP_FILE_PREFIX, TEMP_FILE_SUFFIX) : FileSupport.CreateTempFile(TEMP_FILE_PREFIX, TEMP_FILE_SUFFIX); result = file.FullName; using (var gzs = new GZipStream(temp, CompressionMode.Decompress, leaveOpen: false)) using (Stream output = new FileStream(result, FileMode.Open, FileAccess.Write, FileShare.Read)) { gzs.CopyTo(output); } } return(result); }
// LUCENENET specific - this was added to unzip our LineDocsFile to a specific folder // so tests can be run without the overhead of seeking within a MemoryStream private Stream PrepareGZipStream(Stream input) { using (var gzs = new GZipStream(input, CompressionMode.Decompress, leaveOpen: false)) { FileInfo tempFile = LuceneTestCase.CreateTempFile(TEMP_FILE_PREFIX, TEMP_FILE_SUFFIX); tempFilePath = tempFile.FullName; Stream result = new FileStream(tempFilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.Read); gzs.CopyTo(result); // Use the decompressed stream now return(new BufferedStream(result)); } }