Я читаю файл в zip-файле, используя потоки, подобные этому:
public static Stream ReadFile(Models.Document document, string path, string password, string fileName)
{
FileStream fsIn = System.IO.File.OpenRead(Path.Combine(path, $"{document.guid}.crypt"));
var zipFile = new ZipFile(fsIn)
{
//Password = password,
IsStreamOwner = true
};
var zipEntry = zipFile.GetEntry(fileName);
//zipEntry.AESKeySize = 256;
Stream zipStream = zipFile.GetInputStream(zipEntry);
return zipStream;
}
У меня проблемы с закрытием файлового потока fsIn, так как он недоступен, когда я возвращаюсь из метода ReadFile, и если я закрываю его в методе, поток zipStream, который я возвращаю, будет закрыт.
Как я могу закрыть fsIn, но все же прочитать поток данных, возвращенный из моего метода?