summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/zip/zip_reader.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/modules/zip/zip_reader.cpp b/modules/zip/zip_reader.cpp
index f4a92dce5b..123d1e5d46 100644
--- a/modules/zip/zip_reader.cpp
+++ b/modules/zip/zip_reader.cpp
@@ -58,7 +58,14 @@ Error ZIPReader::close() {
PackedStringArray ZIPReader::get_files() {
ERR_FAIL_COND_V_MSG(fa.is_null(), PackedStringArray(), "ZIPReader must be opened before use.");
- int err = unzGoToFirstFile(uzf);
+ unz_global_info gi;
+ int err = unzGetGlobalInfo(uzf, &gi);
+ ERR_FAIL_COND_V(err != UNZ_OK, PackedStringArray());
+ if (gi.number_entry == 0) {
+ return PackedStringArray();
+ }
+
+ err = unzGoToFirstFile(uzf);
ERR_FAIL_COND_V(err != UNZ_OK, PackedStringArray());
List<String> s;