如何在C#中保存所有打开的记事本文件的保存位置

时间:2016-01-06 22:28:17

标签: c# .net windows

如果记事本文件保存在驱动器中,如何检索记事本文件的完整路径。例如,记事本进程正在运行,它将保存在驱动器中的某个位置。如何检索其完整路径?使用下面的代码我可以获得流程详细信息,但不能获取特定文件的实际路径。

Process[] localByName = Process.GetProcessesByName("notepad");

foreach (Process p in localByName)
{
    string path  =  p.MainModule.FileName.ToString();
}

这会返回C:\ WINDOWS \ system32 \ NOTEPAD.EXE我也想获取文件的保存位置。

1 个答案:

答案 0 :(得分:1)

你不能轻易搞定。您需要特定进程的文件句柄。记事本(至少在我的系统上)似乎没有保持文件句柄对文件开放 - 它打开它然后关闭句柄(因为当我通过句柄搜索时,进程资源管理器找不到文本文件)。 文件名将在窗口标题中,您也可以通过Windows API调用(可能还有进程api)获取该文本,但这不会为您提供文件路径。

您可以通过进入Process Explorer,在记事本中打开文本文件,然后检查“handle”下的文件来测试它。我没有露面。

相关问题