亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#中獲取程序路徑的幾種方法及其區(qū)別說明

 更新時間:2023年07月14日 08:37:49   作者:高富帥軍  
這篇文章主要介紹了C#中獲取程序路徑的幾種方法及其區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

在開發(fā)的程序中使用自定義的配置文件屬于基本的操作了,但最近發(fā)現一個問題:如果程序是由用戶通過exe文件直接打開的,獲取同目錄下配置文件不會有問題;

但如果程序是由第三方應用啟動的,通過不同方式獲取的“當前目錄”會有不同。

整理的幾種獲取當前目錄的方式

及官方文檔中的注釋:

string str1=Process.GetCurrentProcess().MainModule.FileName;//獲取模塊的完整路徑。
string str2=Environment.CurrentDirectory;//獲取或設置當前工作目錄的完全限定路徑。
string str3=Directory.GetCurrentDirectory();//獲取應用程序的當前工作目錄。
string str4=AppDomain.CurrentDomain.BaseDirectory;//獲取基目錄,它由程序集沖突解決程序用來探測程序集。
string str5=Application.StartupPath;//獲取啟動了應用程序的可執(zhí)行文件的路徑,不包括可執(zhí)行文件的名稱。
string str6=Application.ExecutablePath;//獲取啟動了應用程序的可執(zhí)行文件的路徑,包括可執(zhí)行文件的名稱。
string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//獲取或設置包含該應用程序的目錄的名稱。
string str8=this.GetType().Assembly.Location;//獲取包含清單的已加載文件的路徑或UNC位置。

分別通過手動啟動和第三方調用的方法啟動應用程序(exe文件路徑:D:\test\程序啟動路徑.exe),其值分別為:

手動啟動

Process.GetCurrentProcess().MainModule.FileNameD:\test\程序啟動路徑.exe
Environment.CurrentDirectoryD:\test
Directory.GetCurrentDirectory()D:\test
AppDomain.CurrentDomain.BaseDirectoryD:\test\
Application.StartupPathD:\test
Application.ExecutablePathD:\test\程序啟動路徑.exe
AppDomain.CurrentDomain.SetupInformation.ApplicationBaseD:\test\
this.GetType().Assembly.LocationD:\test\程序啟動路徑.exe

通過Win+R打開運行,輸入程序路徑,或通過bat批處理命令運行,效果與直接打開一致。

C#使用System.Diagnostics.Process.Start()方法啟動

(調用方路徑:E:\test)

Process.GetCurrentProcess().MainModule.FileNameD:\test\程序啟動路徑.exe
Environment.CurrentDirectoryE:\test
Directory.GetCurrentDirectory()E:\test
AppDomain.CurrentDomain.BaseDirectoryD:\test\
Application.StartupPathD:\test
Application.ExecutablePathD:\test\程序啟動路徑.exe
AppDomain.CurrentDomain.SetupInformation.ApplicationBaseD:\test\
this.GetType().Assembly.LocationD:\test\程序啟動路徑.exe

通過cmd命令行啟動

(cmd命令中直接輸入 D:\test\程序啟動路徑.exe)

Process.GetCurrentProcess().MainModule.FileNameD:\test\程序啟動路徑.exe
Environment.CurrentDirectoryC:\Users\用戶名
Directory.GetCurrentDirectory()C:\Users\用戶名
AppDomain.CurrentDomain.BaseDirectoryD:\test\
Application.StartupPathD:\test
Application.ExecutablePathD:\test\程序啟動路徑.exe
AppDomain.CurrentDomain.SetupInformation.ApplicationBaseD:\test\
this.GetType().Assembly.LocationD:\test\程序啟動路徑.exe

通過LabVIEW中“執(zhí)行系統(tǒng)命令”(System Exec.vi)啟動

Process.GetCurrentProcess().MainModule.FileNameD:\test\程序啟動路徑.exe
Environment.CurrentDirectoryC:\WINDOWS\system32
Directory.GetCurrentDirectory()C:\WINDOWS\system32
AppDomain.CurrentDomain.BaseDirectoryD:\test\
Application.StartupPathD:\test
Application.ExecutablePathD:\test\程序啟動路徑.exe
AppDomain.CurrentDomain.SetupInformation.ApplicationBaseD:\test\
this.GetType().Assembly.LocationD:\test\程序啟動路徑.exe

此方法在不同電腦中表現不一致,沒有對比是操作系統(tǒng)原因還是LabVIEW原因。

在同事電腦上,Environment.CurrentDirectory和Directory.GetCurrentDirectory()方式獲取的路徑為 C:\Users\用戶名\Desktop

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C# using語法糖圖文詳解

    C# using語法糖圖文詳解

    這篇文章主要給大家介紹了關于C# using語法糖的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 詳解c# 數組(Array)

    詳解c# 數組(Array)

    這篇文章主要介紹了c# 數組的的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 淺談c# 面向對象之類與對象

    淺談c# 面向對象之類與對象

    這篇文章主要介紹了c# 面向對象的類與對象的相關知識,非常的淺顯易懂,有需要的小伙伴參考下。
    2014-12-12
  • WPF+DiffPlex實現文本比對工具

    WPF+DiffPlex實現文本比對工具

    現行的文本編輯器大多都具備文本查詢的能力,但是并不能直觀的告訴用戶兩段文字的細微差異,所以對比工具在某種情況下,就起到了很便捷的效率。本文將利用DiffPlex實現簡易的文本比對工具,需要的可以參考一下
    2022-11-11
  • C#中GraphicsPath的Widen方法用法實例

    C#中GraphicsPath的Widen方法用法實例

    這篇文章主要介紹了C#中GraphicsPath的Widen方法用法,實例分析了Widen方法的使用技巧,需要的朋友可以參考下
    2015-06-06
  • c#使用Unity粒子實現炮塔發(fā)射系統(tǒng)

    c#使用Unity粒子實現炮塔發(fā)射系統(tǒng)

    Unity自帶粒子發(fā)射器、動畫器、渲染器各兩種,利用Unity的粒子系統(tǒng)制作一個炮塔發(fā)射系統(tǒng),了解粒子系統(tǒng),必須先了解每一個屬性都代表了什么,之后才能根據這些原理來調整出自己滿意的效果
    2022-04-04
  • C#實現兩個時間相減的方法

    C#實現兩個時間相減的方法

    這篇文章主要介紹了C#實現兩個時間相減的方法,實例分析了C#針對時間操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • c#?chart縮放,局部放大問題

    c#?chart縮放,局部放大問題

    這篇文章主要介紹了c#?chart縮放,局部放大問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • c# 共享狀態(tài)的文件讀寫實現代碼

    c# 共享狀態(tài)的文件讀寫實現代碼

    開發(fā)中有時會遇到要對文件進行共享狀態(tài)的讀寫操作,代碼如下,需要的朋友可以參考下
    2012-06-06
  • Unity 如何批量修改FBX模型

    Unity 如何批量修改FBX模型

    這篇文章主要介紹了Unity 批量修改FBX模型的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論