Open Files Using a Program Made in Godot

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Bubu

Is it possible to open a file from the system file browser by right clicking and choosing “Open With”?

I have made a program that opens text files. However, it is not handy when I have to manually open the program every time I need to open a text file.

My goal is to at least be able to open files by right clicking and choosing “Open With…” or dragging the file to the program.

I’m trying to achieve something similar to the way Godot opens .godot projects.

An interesting fact is that I’ve noticed if you open a .godot file in a project with an exported program, the project runs.

Try exporting a Godot program, and use it to open say, Pong’s project.godot by dragging and dropping it on the exported executable. The game will run!

1 Like
:bust_in_silhouette: Reply From: Bubu

I figured it out, so I’ll post this in case anyone else wanted to know.

When a file is opened with the program, the file path is used as a command line argument. Get these arguments using OS.get_cmdline_args(), this method returns an array of the arguments. If you don’t use other command line arguments you can just call open(path) with the file path from the command line argument.

As I understand it OS.get_cmdline_args() will get you the file used to open the application. But did you figure out any way to get any additional files the user might have double-clicked or dropped from the OS file manager while the application was open?

If anyone else comes looking for this in the future I’ve made a proposal for this available at Add supported file type configuration to exported projects and method to open files sent from OS · Issue #10195 · godotengine/godot-proposals · GitHub