获取当前进程目录

时间:2019-01-15 12:18:50

标签: c# process

如何在C#中获取诸如外部进程的工作目录之类的信息?

例如,有一个node.JS进程,我想获取它的工作目录。

2 个答案:

答案 0 :(得分:0)

如果您提出问题,请提供更多信息以及您已经尝试过的内容! 但是,请参见代码:

using System.Diagnostics;
var process = Process.GetCurrentProcess();
string fullPath = process.MainModule.FileName;

希望这也将有助于查看官方文档: https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process?view=netframework-4.7.2

答案 1 :(得分:0)

如果要获取任何正在运行的进程的路径,请尝试此操作。

  

功能

[DllImport("Kernel32.dll")]
private static extern bool QueryFullProcessImageName([In] IntPtr hProcess, [In] uint dwFlags, [Out] StringBuilder lpExeName, [In, Out] ref uint lpdwSize);

public static string GetMainModuleFileName(this Process process, int buffer = 1024)
{
    var fileNameBuilder = new StringBuilder(buffer);
    uint bufferLength = (uint)fileNameBuilder.Capacity + 1;
    return QueryFullProcessImageName(process.Handle, 0, fileNameBuilder, ref bufferLength) ?
    fileNameBuilder.ToString() :
    null;
}
  

用法

var process = Process.GetProcessesByName("Process").First();
string path = process.GetMainModuleFileName();

希望有帮助。