Class ZipReader
- Namespace
- Godot
- Assembly
- GodotSharp.dll
This class implements a reader that can extract the content of individual files inside a ZIP archive. See also ZipPacker.
# Read a single file from a ZIP archive.
func read_zip_file():
var reader = ZIPReader.new()
var err = reader.open("user://archive.zip")
if err != OK:
return PackedByteArray()
var res = reader.read_file("hello.txt")
reader.close()
return res
Extract all files from a ZIP archive, preserving the directories within.
This acts like the "Extract all" functionality from most archive managers.
func extract_all_from_zip():
var reader = ZIPReader.new()
reader.open("res://archive.zip")
# Destination directory for the extracted files (this folder must exist before extraction).
# Not all ZIP archives put everything in a single root folder,
# which means several files/folders may be created in `root_dir` after extraction.
var root_dir = DirAccess.open("user://")
var files = reader.get_files()
for file_path in files:
# If the current entry is a directory.
if file_path.ends_with("/"):
root_dir.make_dir_recursive(file_path)
continue
# Write file contents, creating folders automatically when needed.
# Not all ZIP archives are strictly ordered, so we need to do this in case
# the file entry comes before the folder entry.
root_dir.make_dir_recursive(root_dir.get_current_dir().path_join(file_path).get_base_dir())
var file = FileAccess.open(root_dir.get_current_dir().path_join(file_path), FileAccess.WRITE)
var buffer = reader.read_file(file_path)
file.store_buffer(buffer)</code></pre>
[GodotClassName("ZIPReader")]
public class ZipReader : RefCounted, IDisposable
- Inheritance
-
ZipReader
- Implements
- Inherited Members
Constructors
ZipReader()
public ZipReader()
Methods
Close()
Closes the underlying resources used by this instance.
public Error Close()
Returns
FileExists(string, bool)
Returns true if the file exists in the loaded zip archive.
Must be called after Open(string).
public bool FileExists(string path, bool caseSensitive = true)
Parameters
Returns
GetFiles()
Returns the list of names of all files in the loaded archive.
Must be called after Open(string).
public string[] GetFiles()
Returns
- string[]
HasGodotClassMethod(in godot_string_name)
Check if the type contains a method with the given name. This method is used by Godot to check if a method exists before invoking it. Do not call or override this method.
protected override bool HasGodotClassMethod(in godot_string_name method)
Parameters
method
godot_string_nameName of the method to check for.
Returns
HasGodotClassSignal(in godot_string_name)
Check if the type contains a signal with the given name. This method is used by Godot to check if a signal exists before raising it. Do not call or override this method.
protected override bool HasGodotClassSignal(in godot_string_name signal)
Parameters
signal
godot_string_nameName of the signal to check for.
Returns
InvokeGodotClassMethod(in godot_string_name, NativeVariantPtrArgs, out godot_variant)
Invokes the method with the given name, using the given arguments. This method is used by Godot to invoke methods from the engine side. Do not call or override this method.
protected override bool InvokeGodotClassMethod(in godot_string_name method, NativeVariantPtrArgs args, out godot_variant ret)
Parameters
method
godot_string_nameName of the method to invoke.
args
NativeVariantPtrArgsArguments to use with the invoked method.
ret
godot_variantValue returned by the invoked method.
Returns
Open(string)
Opens the zip archive at the given path
and reads its file index.
public Error Open(string path)
Parameters
path
string
Returns
ReadFile(string, bool)
Loads the whole content of a file in the loaded zip archive into memory and returns it.
Must be called after Open(string).
public byte[] ReadFile(string path, bool caseSensitive = true)
Parameters
Returns
- byte[]