Banyak program menggunakan ekstensi file yang sama, tetapi formatnya sangat berbeda dan tidak kompatibel. Misalnya, saya memiliki .sch
file di komputer saya yang memiliki setidaknya 5 format berbeda (TINA, PSpice, PADS, Protel, dan Eagle). Apakah ada cara untuk membuat Windows memperlakukan mereka secara berbeda, sehingga mengklik dua kali pada file seperti itu akan membukanya di program yang seharusnya dibuka?
Linux menggunakan angka ajaib dalam file itu sendiri untuk membedakan, dan hanya menggunakan ekstensi file sebagai paket cadangan. (Semua file PNG mulai dengan byte 89 50 4E 47 0D 0A 1A 0A
, misalnya, terlepas dari apa yang Anda beri nama.) Akan lebih baik jika Windows dapat mendukung ini, tetapi mungkin sangat sulit untuk diterapkan. Mungkin sesuatu yang lebih sederhana seperti ekstensi tingkat kedua, seperti filename.program1.sch
dan filename.program2.sch
? Mungkin beberapa jenis filter yang mengubah nama file dengan cepat?
Gagasan yang lebih baik: Mengaitkan ekstensi yang ambigu dengan file pra-prosesor (file .bat atau aplikasi khusus) yang memeriksa ekstensi level kedua atau masuk ke file itu sendiri dan memindai nomor ajaib dan kemudian meluncurkan program yang sesuai?
Jawaban:
Windows tidak meluncurkan file berdasarkan informasi apa pun dalam file - membangun basis data untuk itu akan membutuhkan banyak pekerjaan dan pemrograman. Satu-satunya cara yang benar untuk mengidentifikasi file adalah dengan tanda tangan biner dalam file tersebut, jika file tersebut memilikinya, dan ini tergantung pada pembuat perangkat lunak untuk mengimplementasikannya.
Di Windows, file diteruskan ke program yang Anda tentukan untuk ekstensi file tertentu. Windows menentukan ekstensi file sebagai substring yang mengikuti kejadian terakhir suatu periode, jadi itu tidak mungkin dengan nama file yang Anda posting.
Anda harus memberi nama ulang file (dan memberi mereka ekstensi file unik), atau menulis file batch untuk meluncurkan aplikasi yang sesuai untuk Anda. Untuk detail lebih lanjut, lihat artikel Technet ini .
sumber
Saya memecahkannya sendiri:
Saya membuat skrip Python yang membaca beberapa byte pertama file dan membandingkannya dengan kamus, kemudian meluncurkan program yang sesuai berdasarkan angka ajaib.
Versi terbaru akan ada di sini: Luncurkan file ambigu dalam program yang sesuai
Saya mencoba mengaitkan ekstensi file dengan skrip ini, tetapi Windows 7 tidak membiarkan saya. Itu hanya dikaitkan dengan Python saja, jadi saya pergi ke registri dan menambahkan nama skrip secara manual.
Ruang untuk perbaikan, tetapi berhasil. Saya dapat mengklik dua kali pada file yang berbeda dengan ekstensi .sch yang sama dan mereka membuka di aplikasi yang berbeda.
Pembaruan: Saya telah mengonversinya menjadi .exe menggunakan cx_freeze, dengan file konfigurasi YAML eksternal, dan mudah untuk dikaitkan. Lihat juga proposal libmagic ini . Tidak yakin apakah saya harus menjadikan ini "libmagic launcher untuk Windows" yang lengkap atau apakah lebih baik hanya menangani satu ekstensi file dengan satu .exe dan file YAML sederhana.
sumber
Untuk memulai, Anda dapat mengganti nama salah satu jenis file untuk memiliki ekstensi baru, dan menggunakan dialog "buka dengan" untuk mengatur program default untuk membuka jenis file tersebut.
Ini tidak menangani masalah penggantian nama. Tetapi Anda menyederhanakan banyak hal dengan membuat folder tertentu tempat Anda meletakkan semua file dari salah satu program. Kemudian Anda dapat menulis skrip untuk secara otomatis mengubah nama file di folder itu menjadi ekstensi file baru Anda.
Anda mungkin mengalami masalah dengan dialog "Buka File" di program Anda, tergantung pada bagaimana pengaturannya. Tetapi jika Anda memiliki satu folder di mana semua file Anda, Anda harus dapat menggunakannya.
Cara yang lebih rumit, tetapi berpotensi lebih baik adalah membuat program proxy. Simpan semua ekstensi file, tetapi biarkan dibuka oleh program proxy. Mintalah program Anda memeriksa biner dan memilih jenis file apa itu dan program mana yang akan dimulai. Ini akan mengharuskan Anda meluangkan waktu untuk menulis program Anda, yang mungkin atau mungkin tidak sepadan bagi Anda.
sumber
Microsoft Visual Studio mengimplementasikan ide terakhir Anda. Ketika Anda meluncurkan file .sln, rintisan kecil memeriksa nomor versi solusi dan meluncurkan versi yang benar dari Visual Studio (jika Anda sudah menginstal beberapa versi).
Tentu saja, koordinasi di sini sedikit lebih mudah karena (A) format file dirancang untuk ini dan (B) mereka semua versi perangkat lunak yang sama, dari produsen yang sama.
sumber
Solusi cepat adalah menambahkan entri konteks tambahan ke menu konteks explorer. Atau untuk menggunakan entri konteks 'terbuka dengan'. Yang pertama lebih nyaman karena seseorang dapat menambahkan parameter panggilan dan menentukan nama 'jitu'. Ini juga memungkinkan membuka file dengan versi berbeda dari program yang sama (jika dipasang paralel).
Tentu saja, pendekatan ini tidak otomatis. Kita harus tahu aplikasi yang tepat. Tetapi untuk jenis file di mana deteksi berbasis basis data akan gagal (mis. File teks atau file lain tanpa "angka ajaib"), Anda selalu memiliki pilihan.
BTW: OS 'GEOS' yang kurang dikenal (yang merupakan pesaing Win3 pada saat itu dan jauh di depan) memiliki header 256 byte tetap untuk semua file di mana aplikasi pembuatan, ikon pemberitahuan hak cipta disimpan (bersama dengan bidang gratis untuk catatan sendiri). Karena ini adalah bagian dari file dan bukan sistem file atau kamus OS, itu transparan ketika file dipindahkan di seluruh sistem file atau bahkan ke OS yang berbeda (ada ekstensi penjelajah untuk W95).
sumber