Muidugi, siin on pikk artikkel käivitatava tee hankimise kohta C#-s.
C# rakenduses käivitatava faili tee leidmine on tavaline programmeerimisülesanne, mis võib programmeerimisreisil aeg-ajalt ette tulla. See on üsna lihtne ülesanne, kuid siiski oluline ja väga kasulik mitmesugustel eesmärkidel. Näiteks saab seda kasutada erinevate projektifailide juurde pääsemiseks, kui projekti asukoht pole teada. See artikkel jagab käivitatava faili tee leidmiseks vajaliku koodi lahti, selgitab seda samm-sammult ja süveneb lõpuks seotud ideedesse.
C# programmeerimise kontekstis saab selle ülesande täita vaid ühe koodireaga. Nii et asume otse lahenduse juurde:
System.AppDomain.CurrentDomain.BaseDirectory
Ülaltoodud koodirida lihtsalt tagastab praegu töötava rakenduse käivitatava faili (.exe) tee stringi kujul.
Atribuut AppDomain.CurrentDomain.BaseDirectory saab baaskataloogi, mida assembleri lahendaja kasutab assemblerite otsimiseks.
Koodi mõistmine: samm-sammult selgitus
C#-s on AppDomain klass lahutamatu osa .NET-raamistiku süsteemi nimeruumist. Igal .NET-rakendusel on vähemalt üks AppDomaini eksemplar . See eksemplar luuakse rakenduse käivitamisel. Igal uuel rakendusel on oma AppDomain , mis hoiab seda teistest rakendustest isoleerituna, mis on oluline rakenduse turvalisuse ja töökindluse parandamiseks.
CurrentDomain on seevastu AppDomain klassi omadus. See tagastab objekti, mis viitab töötava lõime praegusele rakendusdomeenile.
Lõpuks tagastab tagastatud AppDomain objekti BaseDirectory omadus kataloogi tee, kus rakenduse käivitatav fail asub.
Niisiis, kõik kokku pannes:
- AppDomain.CurrentDomain annab meile praeguse rakenduse domeeni.
- BaseDirectory annab meile praeguse rakenduse domeeni baaskataloogi.
Lühidalt, ülalmainitud üherealine kood annab meile kataloogi tee, kus praegu töötava rakenduse käivitatav komplekt asub.
Süsteemi nimeruum ja AppDomaini klass
Süsteemi nimeruum on üks C#-s enimkasutatavaid nimeruume. See hõlmab põhiklasse ja baasklasse, mis defineerivad tavaliselt kasutatavaid väärtusi ning viitavad andmetüüpidele, sündmustele ja sündmustekäitlejatele, liidestele, atribuutidele ja töötlemiseranditele.
AppDomain on klass, mis moodustab olulise osa süsteemi nimeruumist ja täidab mitmesuguseid eesmärke:
- See pakub liivakasti käituskeskkonda, mida saab juhtida ja laadida konkreetse komplekti komplektiga.
- Seda saab konfigureerida, mis võimaldab seadistada selliseid konfiguratsioone nagu turvapoliitika.
- Seda saab maha laadida, mis muudab selle ressursside haldamisel mugavaks.
Seetõttu pakub atribuut AppDomain.CurrentDomain.BaseDirectory mitmekülgset võimalust praegu töötava rakenduse käivitatava faili kataloogile juurdepääsuks, muutes selle väärtuslikuks tööriistaks C# programmeerija tööriistakomplektis.
Siit saab uurida keerukamaid kontseptsioone, nagu AppDomaini kasutamine Runtime Executable'i isoleerimiseks, Reflection, AppDomaini konfigureerimine ja palju muud, mis kõik nõuavad praegusest teemast head arusaamist. See annab tunnistust sellest, kuidas programmeerimise põhikonstruktsioonid toimivad sageli väravana valdkonna keerukamatesse ja huvitavamatesse tahkudesse.
Koodis käivitatava tee kasutamine
Kui tee on olemas, muutub selliste toimingute tegemine nagu failidele juurdepääs, logide genereerimine jne lihtsaks. Siin on näidiskood selle kohta, kuidas saaksite failile juurdepääsuks kasutada BaseDirectoryt:
string filePath = System.AppDomain.CurrentDomain.BaseDirectory + @"DataDetails.txt";
kasutades (StreamReader sr = uus StreamReader(filePath))
{
// Sinu kood siin
}
Selles koodis ühendame lihtsalt baaskataloogi tee kataloogis Data oleva faili „Details.txt” suhtelise teega ja loeme seda. See kood töötab edukalt olenemata teie projekti praegusest asukohast, suurendades seeläbi teie koodi paindlikkust.
Kui jätkate tööd rohkemate projektidega ja omandate rohkem kogemusi C# ja .NET raamistikuga, puutute kokku paljude selliste utiliitidega, mis ootavad kasutamist. Ja võite olla kindel, mida rohkem õpite, mida rohkem tööriistu teie käsutuses on, seda suurem on teie käsutus oma koodi üle. Head kodeerimist!