The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates.

godotengine.org | Twitter

0 votes

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!

Godot version 3.2.3.stable
in Engine by (298 points)
edited by

1 Answer

0 votes

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.

by (298 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.