LINQを使用してZipArchive
からZipArchiveEntry
というファイルを選択します。LINQを使用してZipArchiveの中から最初に一致するファイルを取得する方法は?
var txtInZip = archive.Entries.FirstOrDefault(x => x.FullName == filename + ".txt");
txtInZip
は常にnullを返している:私は何
は、これまで
string filename = "foo";
using (FileStream zipFile = new FileStream(Path.Combine(FilePathLocal, filename + ".zip"), FileMode.Open)) {
using (ZipArchive archive = new ZipArchive(zipFile, ZipArchiveMode.Read)) {
var txtInZip = archive.Entries.Select(x => x.FullName == filename + ".txt");
using (Stream csvStream = txtInZip.Open()) {
...
}
}
}
これは私が問題を抱えていますラインです。私もSelect
の代わりにFirstOrDefault
を使用しようとしましたが、ZipArchiveEntryを意図して返すようにこのLINQクエリを修正するにはどうすればよいですか?
ありがとうございます。私はZipArchiveEntryドキュメントを読んでいて、それを見ませんでした。また、ファイル名には(ジップの名前から) '(A)'があることに気付きましたが、その中のtxtファイルはそれ以外は同じです。私はそれに応じて私のクエリを調整し、今後も '.Name'を使用します。 'Path.GetFileName(x.FullName)'も通常同様に動作しますが、 'x.Name'は自分の必要性のために処理/頭痛が少なくなります。有難うございます ! (upvoted) –