Làm cách nào để tôi truy xuất tất cả các lượt mở với các hành động tệp tin trên mỗi API?


1

Tôi muốn trưng ra các hành động Trình quản lý tệp của Ubuntu trong ứng dụng của mình (trên mỗi tệp).

Trong Windows, bạn phải phân tích sổ đăng ký (khá đơn giản) nhưng tôi không biết gì về Debian hoặc Ubuntu. Tôi không bận tâm đến nỗ lực lập trình và tôi rất muốn biết về các phím tắt tiềm năng (lệnh shell). Có thứ gì đó giống như API nền tảng hay tôi chỉ nên bắt đầu xem mã nguồn Nautilus? Tôi đoán có lẽ có một bản đồ mime ở đâu đó và tôi có thể kết xuất nó với gnome-conf.

Cảm ơn, bất kỳ gợi ý đều được chào đón.


Những hành động nào bạn muốn sử dụng trong chương trình của bạn?
Florian Diesch

thực ra chỉ là những hành động 'cởi mở' nhưng khi nhìn vào gói hành động ngoại cỡ nautilus, tôi cũng rất muốn nhận chúng. cảm ơn
xamiro

Câu trả lời:


1

Đối với open-withNautilus sử dụng GTKGIO :

GTK cung cấp giao diện GtkAppChooser và các cài đặt của nó sẽ được sử dụng trong GUI.

Ở cấp độ thấp hơn, có GIO với những thứ như g_file_query_default_handler () để lấy ứng dụng mặc định cho tệp hoặc g_app_info_get_all_for_type () để nhận tất cả các ứng dụng đã đăng ký cho loại MIME.

Khi bạn có GAppInfo cho một ứng dụng, bạn có thể sử dụng g_app_info_launch () để mở tệp với ứng dụng đó.

Tùy thuộc vào ngôn ngữ lập trình bạn đang sử dụng, có thể có các tài liệu tốt hơn, như Tham chiếu API Introspection của Python GObject

Đối với hệ vỏ có xdg-open để mở tệp với ứng dụng mặc định và xdg-mime để thực hiện mọi việc với các loại MIME.

Nếu bạn muốn biết tất cả các chi tiết về xử lý MIME trên Linux, hãy xem Cơ sở dữ liệuthông tin MIME được chia sẻ giữa các loại và ứng dụng MIME


nautilus-extra-actionchứa các chương trình nhỏ (thường là các tập lệnh shell) cho phần mở rộng Nautilus-Action . Để sử dụng chúng, chương trình của bạn cũng cần phải thực hiện một cái gì đó giống như Nautilus-Action.


câu trả lời tuyệt vời cảm ơn rất nhiều, API Python sẽ làm điều đó, nó dành cho trình quản lý tệp trên máy tính để bàn dựa trên nodejs / js.
xamiro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.