Hogy lehet megcsinálni c#-be, hogy beolvasson egy fájlt, u. h. a fájlt inditom el es nem a programot?
Ilyenkor a windows a programodnak argumentumgént adja át a megnyitandó file elérési útját. Hogy ezt megkapd, winforms esetén azt kell tenned, hogy megkeresed a program.cs filet, es megadod a main fuggveny parameterenek, hoyg string tombot vár: "static void Main(string[] args)"
Ennek a string tombnek az elso eleme tartalmazza a tarsitott és megnyitott file eleresi utjat. Ajanlatos azert ellenorizni a length értékt, hogy nem-e 0.
Utána gondolom mennifog, de azért leírom, hogy pl add át ezt az args[0] értéket a fo formodnak (vagy az egész args tombot):
Application.Run(new Form1(args));
És persze a form konstruktorat is ird at, hogy várjon ilyen parametert.
public Form1(string[] args)
File betöltés legegyszerubben pedig igy megy:
string txt = File.ReadAllText(args[0]);
WPF esetén a Environment.GetCommandLineArgs(); hivassal kapod meg az elobbi args tombot.
Ennyire azért nem egyszerű.
Két lépésben: először is rögzítened kell a Registry-ben, hogy melyik fájlt szeretnéd automatikusan megnyittatni a programoddal.
Utána pedig a programon belül le kell kezelned a kapott paramétert.
A következő példa egy képzeletbeli fájl társítását rejti:
A *.file kiterjesztésű állományokat a fileopener.exe programmal fogjuk megnyitni. A szoftvert a c:\mytools könyvtárban találjuk, és a --open paraméterrel lehet rávenni, hogy megnyisson egy átadott fájlt.
Na lássuk: A HKCR hive-ban létrehozol egy .file nevű kulcsot, alapértelmezett értéke "mytools.file" legyen.
A HKCR-ben létrehozol egy mytools.file kulcsot, a következő struktúrával:
mytools.file
DefaultIcon
Shell
open
command
mytools.file: Alapértelmezett értéke mondjuk "Eszközeim fájlja"
DefaultIcon: Alapértelmezett érték a fájl ikonját tartalmazó .ico állományra mutat.
command: Az alapértelmezett értéke a futtatni kívánt parancsot rejti. Ez esetünkben: "c:\mytools\fileopener.exe --open %1"
A "%1" a windows Shellnek adott első paramétert, tehát a fájl nevét jelenti.
A programban innétől fogva nincs más dolgod, mint elkezded nézegetni a kapott paramétereket sorban. Ha az aktuális paraméter "--open", akkor veszed a következőt, és megnyitod.
Van ehhez két osztályom is. Az egyik be tudja reggelni a fájltársítást, a másik a paraméterek felsorolásában segít. pl.:
AppParams.FirstParam();
while (!AppParams.EndOfParams()) {
...
if (AppParam.CurrentParam == "...
AppParams.NextParam();
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!