You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-12 13:20:55 +00:00
Add function ZIPReader::file_exists
This commit is contained in:
@@ -25,6 +25,15 @@
|
|||||||
Closes the underlying resources used by this instance.
|
Closes the underlying resources used by this instance.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="file_exists">
|
||||||
|
<return type="bool" />
|
||||||
|
<param index="0" name="path" type="String" />
|
||||||
|
<param index="1" name="case_sensitive" type="bool" default="true" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] if the file exists in the loaded zip archive.
|
||||||
|
Must be called after [method open].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="get_files">
|
<method name="get_files">
|
||||||
<return type="PackedStringArray" />
|
<return type="PackedStringArray" />
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -118,6 +118,21 @@ PackedByteArray ZIPReader::read_file(String p_path, bool p_case_sensitive) {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ZIPReader::file_exists(String p_path, bool p_case_sensitive) {
|
||||||
|
ERR_FAIL_COND_V_MSG(fa.is_null(), false, "ZIPReader must be opened before use.");
|
||||||
|
|
||||||
|
int cs = p_case_sensitive ? 1 : 2;
|
||||||
|
if (unzLocateFile(uzf, p_path.utf8().get_data(), cs) != UNZ_OK) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (unzOpenCurrentFile(uzf) != UNZ_OK) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
unzCloseCurrentFile(uzf);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
ZIPReader::ZIPReader() {}
|
ZIPReader::ZIPReader() {}
|
||||||
|
|
||||||
ZIPReader::~ZIPReader() {
|
ZIPReader::~ZIPReader() {
|
||||||
@@ -131,4 +146,5 @@ void ZIPReader::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("close"), &ZIPReader::close);
|
ClassDB::bind_method(D_METHOD("close"), &ZIPReader::close);
|
||||||
ClassDB::bind_method(D_METHOD("get_files"), &ZIPReader::get_files);
|
ClassDB::bind_method(D_METHOD("get_files"), &ZIPReader::get_files);
|
||||||
ClassDB::bind_method(D_METHOD("read_file", "path", "case_sensitive"), &ZIPReader::read_file, DEFVAL(Variant(true)));
|
ClassDB::bind_method(D_METHOD("read_file", "path", "case_sensitive"), &ZIPReader::read_file, DEFVAL(Variant(true)));
|
||||||
|
ClassDB::bind_method(D_METHOD("file_exists", "path", "case_sensitive"), &ZIPReader::file_exists, DEFVAL(Variant(true)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ public:
|
|||||||
|
|
||||||
PackedStringArray get_files();
|
PackedStringArray get_files();
|
||||||
PackedByteArray read_file(String p_path, bool p_case_sensitive);
|
PackedByteArray read_file(String p_path, bool p_case_sensitive);
|
||||||
|
bool file_exists(String p_path, bool p_case_sensitive);
|
||||||
|
|
||||||
ZIPReader();
|
ZIPReader();
|
||||||
~ZIPReader();
|
~ZIPReader();
|
||||||
|
|||||||
Reference in New Issue
Block a user