Как проверить содержимое zip-файла перед тем, как перечислить его в combobox с помощью C# WF
Я хочу запрограммировать сообщение, которое сообщит мне, есть ли один или несколько файлов cvs в zip-файле, и даст мне количество файлов, содержащихся в этом zip-файле. Заранее спасибо
Что я уже пробовал:
var = comboBox1.SelectedItem.ToString(); fullpath = fbd.SelectedPath + "\\"+ var; comboBox2.Items.Clear(); if (File.Exists(fullpath)) { ZipArchive zip = ZipFile.OpenRead(fullpath); MessageBox.Show(Directory.EnumerateFileSystemEntries(fullpath, "*.csv").ToList<string>().Count + " csv file(s) present"); // get error here foreach (ZipArchiveEntry entry in zip.Entries) { comboBox2.Items.Add(entry.FullName); // fill comboBox2 with *.csv files from selected zip file } zip.Dispose(); } else { MessageBox.Show("no csv file(s) present"); }
Garth J Lancaster
Почему вы используете каталог?Перечислять ? Это "локальный" каталог в вашей машине - ваш вопрос наводит меня на мысль, что вы хотите проверить zip-файл .. в этом случае
int numAllFiles = 0;
int numCSVFiles = 0;
foreach (запись ZipArchiveEntry в zip.Записи)
{
если (запись.Полное имя.EndsWith (". csv", StringComparison.OrdinalIgnoreCase))
{
numCSVFiles += 1;
}
numAllFiles += 1;
}
// Test numCSVFiles == 0 и т. д
Member 12558924
Прежде всего, спасибо за вашу помощь. Пожалуйста, вы действительно можете сказать мне, что я должен использовать вместо каталога.EnumerateFileSystemEntries, чтобы он мог подсчитать, сколько csv-файлов содержится в zip-файле?
Garth J Lancaster
Я дал тебе код
Member 12558924
да, я видел ваш код, но как насчет почтового ящика? я хочу использовать его
Garth J Lancaster
мы не служба написания кода - Вы должны быть готовы копаться и работать самостоятельно - у вас есть код messagebox в вашем первоначальном образце-адаптируйтесь, исследуйте, но не будьте вампиром помощи
Member 12558924
Извините, но я не удовлетворен своими личными исследованиями. Вот почему я здесь, а вы не ответили на вопрос, но это не имеет значения. До свидания и спасибо, что уделили мне время.