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