Example #1
0
        }         // func OpenWrite

        /// <summary>Öffnet die Datei zum Lesen.</summary>
        /// <param name="file">Datei die geöffnet werden soll.</param>
        /// <param name="notify">Zugriff auf die UI.</param>
        /// <param name="compressed">Soll die Datei entpackt werden.</param>
        public static Stream OpenRead(this FileInfo file, CmdletNotify notify, CompressMode compressed = CompressMode.Stored, bool allowEmpty = false)
        {
            var desc = $"Datei '{file.Name}' kann nicht geöffnet werden.";
            var src  = allowEmpty ?
                       notify.SafeOpen(OpenRead, file, desc) :
                       notify.SafeIO(() => OpenRead(file), desc);

            // Entpacke die Daten automatisch
            if (compressed == CompressMode.Compressed || (compressed == CompressMode.Auto && IsGZipFile(file.Name)))
            {
                return(new GZipStream(src, CompressionMode.Decompress, false));
            }
            else
            {
                return(src);
            }
        }         // func OpenRead