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