C# 获取进程的当前目录

C# 获取进程的当前目录,c#,process,C#,Process,如何在C#中获取外部进程的工作目录之类的信息 例如,有一个node.JS进程,我想获取它的工作目录。如果您提出问题,请查看更多信息和您已经尝试过的内容!! 但是,请参见代码: using System.Diagnostics; var process = Process.GetCurrentProcess(); string fullPath = process.MainModule.FileName; 希望这也有助于看到官方文件: 如果要获取任何正在运行的进程的路径,请尝试以下操作 作用 用

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


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

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

using System.Diagnostics;
var process = Process.GetCurrentProcess();
string fullPath = process.MainModule.FileName;
希望这也有助于看到官方文件:

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

作用

用法


希望有帮助。

这不起作用。它显示流程应用程序的路径,但不显示工作目录的路径。对于“工作”目录,您希望看到什么?您有一个示例路径吗?例如,如果我从C:/workplace/运行node./example.js,工作目录将是C:/workplace/而不是应用程序路径,node.exe的安装位置。您已经看过文档了吗?因为有所有可能的方法。包括本地网络中远程计算机的进程。我相信这是您所需要的。
[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();