• C#中几种不同路径表示在网域和本地的差异


    在C#程序中,有这么几种表示当前路径的方法:

    System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
    System.Environment.CurrentDirectory
    System.IO.Directory.GetCurrentDirectory()
    System.AppDomain.CurrentDomain.BaseDirectory
    System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
    System.Windows.Forms.Application.StartupPath
    System.Windows.Forms.Application.ExecutablePath

    看到这些,不管你晕没晕,反正我晕了,我也懒得去读MSDN看它们的差别,因为我知道如果把这几个的说明都读一遍,我会更晕。于是乎,写个程序来测试一下,主要测试了在本机运行和在局域网运行的情况(由于后两种是在Win Forms中使用的,所以没有测试)。

    另外,两种情况下程序都不是直接运行,而是通过python的os.system()来调用的,运行python的目录是桌面,即C:\Users\xxx\Desktop.

    上图是通过python调用os.system(".\\test\\install.exe")运行的结果,可以看到:

    1. Environment.CurrentDirectory   和   Directory.GetCurrentDirectory()都指向了运行python的目录,即桌面;

    2. AppDomain.CurrentDomain.BaseDirectory   和   AppDomain.CurrentDomain.SetupInformation.ApplicationBase指向了程序真正所在的目录;

    3. Process.GetCurrentProcess().MainModule.FileName则指向了完整的程序路径。

    上图是把程序放在局域网另外一台机器上同样通过python调用os.system(r"\\xx.xx.xx.xx\Home\xxxx\Kelvin\install.exe")运行的情况,可以看到:

    1. Environment.CurrentDirectory   和   Directory.GetCurrentDirectory()仍然指向了运行python的目录,即桌面;

    2. AppDomain.CurrentDomain.BaseDirectory   和   AppDomain.CurrentDomain.SetupInformation.ApplicationBase仍然指向了程序真正所在的目录;

    3. Process.GetCurrentProcess().MainModule.FileName仍然指向了完整的程序路径。

  • 相关阅读:
    谷歌浏览器最新版下载链接
    第二章 算法——程序的灵魂
    第一章:程序设计和C语言
    C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂
    面向对象之类的其他方法
    面向对象之反射、包装、(定制)
    PyCharm使用秘籍视频
    re模块(详解正则)
    ATM购物车程序项目规范(更新到高级版)
    音乐脚本
  • 原文地址:https://www.cnblogs.com/ini_always/p/2192250.html
Copyright © 2020-2023  润新知