Atrisināts: iegūstiet izpildāmo ceļu

Pēdējā atjaunošana: 09/11/2023

Protams, šeit ir garš raksts par izpildāmā ceļa iegūšanu C#.

Izpildfaila ceļa iegūšana C# lietojumprogrammā ir izplatīts programmēšanas uzdevums, kas ik pa laikam var rasties programmēšanas gaitā. Tas ir diezgan vienkāršs uzdevums, tomēr svarīgs un ļoti noderīgs dažādiem mērķiem. Piemēram, to var izmantot, lai piekļūtu dažādiem projekta failiem, ja projekta atrašanās vieta nav zināma. Šajā rakstā tiks sadalīts kods, kas nepieciešams izpildfaila ceļa iegūšanai, paskaidrots soli pa solim un visbeidzot aplūkotas saistītās idejas.

C# programmēšanas kontekstā šo uzdevumu var veikt tikai ar vienu koda rindiņu. Tātad, ķersimies pie risinājuma:

System.AppDomain.CurrentDomain.BaseDirectory

Iepriekš minētā koda rinda vienkārši atgriež pašlaik darbojošās lietojumprogrammas izpildāmā faila (.exe) ceļu virknes veidā.

Īpašums AppDomain.CurrentDomain.BaseDirectory iegūst bāzes direktoriju, ko montāžas atrisinātājs izmanto, lai meklētu montāžas.


Koda izpratne: soli pa solim skaidrojums

C# valodā AppDomain klase ir neatņemama .NET ietvara System vārdtelpas sastāvdaļa. Katrai .NET lietojumprogrammai ir vismaz viens AppDomain eksemplārs . Šis eksemplārs tiek izveidots, startējot lietojumprogrammu. Katrai jaunai lietojumprogrammai ir savs AppDomain , kas to izolē no citām lietojumprogrammām, kas ir būtiski lietojumprogrammas drošības un robustuma uzlabošanai.

Savukārt CurrentDomain ir AppDomain klases īpašība. Tā atgriež objektu, kas atsaucas uz pašreizējo lietojumprogrammas domēnu darbojošajam pavedienam.

Visbeidzot, atgrieztā AppDomain objekta īpašība BaseDirectory atgriež direktorija ceļu, kurā atrodas lietojumprogrammas izpildfails.

Tātad, saliekot to visu kopā:

  • AppDomain.CurrentDomain iegūst pašreizējo lietojumprogrammas domēnu.
  • BaseDirectory nodrošina mūs ar pašreizējā lietojumprogrammas domēna bāzes direktoriju.

Īsāk sakot, iepriekš minētais vienas līnijas kods sniedz mums direktorija ceļu, kurā atrodas pašlaik darbojošās lietojumprogrammas izpildāmā montāža.


Sistēmas nosaukumvieta un AppDomain klase

Sistēmas vārdtelpa ir viena no visbiežāk izmantotajām vārdtelpām C# valodā. Tā ietver pamatklases un bāzes klases, kas definē bieži lietotās vērtības un atsaucas uz datu tipiem, notikumiem un notikumu apstrādātājiem, saskarnēm, atribūtiem un apstrādes izņēmumiem.

AppDomain ir klase, kas veido nozīmīgu sistēmas vārdtelpas daļu un kalpo dažādiem mērķiem:

  • Tas nodrošina smilškastes izpildlaika vidi, ko var kontrolēt un ielādēt ar noteiktu komplektu komplektu.
  • To var konfigurēt, kas ļauj iestatīt tādas konfigurācijas kā drošības politika.
  • To var izkraut, kas padara to parocīgu, kad runa ir par resursu pārvaldību.

Tāpēc rekvizīts AppDomain.CurrentDomain.BaseDirectory nodrošina daudzpusīgu veidu, kā piekļūt pašlaik palaistās lietojumprogrammas izpildāmā faila direktorijai, padarot to par vērtīgu rīku C# programmētāja rīkkopā.

No šejienes var izpētīt sarežģītākas koncepcijas, piemēram, AppDomain izmantošanu izpildlaika izpildes izolēšanai, atspoguļošanai, AppDomain konfigurēšanai un citiem, un tam visam ir nepieciešama laba pašreizējās tēmas izpratne. Tas ir apliecinājums tam, ka programmēšanas pamatkonstrukcijas bieži darbojas kā vārti uz sarežģītākām un interesantākām jomām.


Izmantojot izpildāmo ceļu savā kodā

Kad jums ir ceļš, ir viegli veikt tādas darbības kā piekļuve failiem, žurnālu ģenerēšana utt. Šeit ir koda piemērs, kā izmantot BaseDirectory, lai piekļūtu failam:

string filePath = System.AppDomain.CurrentDomain.BaseDirectory + @”DataDetails.txt”;
izmantojot (StreamReader sr = jauns StreamReader(filePath))
{
// Tavs kods šeit
}

Šajā kodā mēs vienkārši savienojam pamata direktorija ceļu ar faila “Details.txt” relatīvo ceļu “Datu” direktorijā un nolasām to. Šis kods veiksmīgi darbotos neatkarīgi no jūsu projekta pašreizējās atrašanās vietas, tādējādi palielinot jūsu koda elastību.

Turpinot strādāt pie vairākiem projektiem un iegūstot vairāk pieredzes ar C# un .NET ietvaru, jūs saskarsities ar daudzām šādām utilītprogrammām, kas gaida izmantošanu. Un esiet drošs, jo vairāk jūs uzzināsit, jo vairāk rīku jums būs jūsu rīcībā, jo labāk jūs pārvaldīsit savu kodu. Laimīgu kodēšanu!

Related posts: