Fixed the fallback logic of OS::shell_show_in_file_manager
This commit is contained in:
parent
cdd2313ba2
commit
9dd9818c88
|
@ -295,12 +295,14 @@ Error OS::shell_open(String p_uri) {
|
|||
}
|
||||
|
||||
Error OS::shell_show_in_file_manager(String p_path, bool p_open_folder) {
|
||||
if (!p_path.begins_with("file://")) {
|
||||
p_path = String("file://") + p_path;
|
||||
}
|
||||
if (!p_path.ends_with("/")) {
|
||||
p_path = p_path.trim_prefix("file://");
|
||||
|
||||
if (!DirAccess::dir_exists_absolute(p_path)) {
|
||||
p_path = p_path.get_base_dir();
|
||||
}
|
||||
|
||||
p_path = String("file://") + p_path;
|
||||
|
||||
return shell_open(p_path);
|
||||
}
|
||||
// implement these with the canvas?
|
||||
|
|
|
@ -657,7 +657,7 @@
|
|||
Requests the OS to open the file manager, then navigate to the given [param file_or_dir_path] and select the target file or folder.
|
||||
If [param file_or_dir_path] is a valid directory path, and [param open_folder] is [code]true[/code], the method will open the file manager and enter the target folder without selecting anything.
|
||||
Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] or [code]user://[/code] path into a system path for use with this method.
|
||||
[b]Note:[/b] Currently this method is only implemented on Windows. On other platforms, it will fallback to [method shell_open] with a directory path for [param file_or_dir_path].
|
||||
[b]Note:[/b] Currently this method is only implemented on Windows and macOS. On other platforms, it will fallback to [method shell_open] with a directory path of [param file_or_dir_path] with prefix [code]file://[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="unset_environment" qualifiers="const">
|
||||
|
|
Loading…
Reference in New Issue