从打开的文件中获取完整路径 - C#

时间:2013-07-22 19:26:24

标签: c#

我正在使用PrintSystemJobInfo处理打印作业,此类没有文件路径(打印作业)。所以,我想知道是否有一个类,我可以使用打开的文件名(在内存中),这个类返回完整的路径。打开的文件可能是 .doc .pdf .xls .txt ,等等。< / p>

拜托,有人可以指出我正确的方向或有想法......这将是非常有帮助的......

2 个答案:

答案 0 :(得分:0)

找到打开文件句柄的唯一方法是使用NtQuerySystemInformation调用。 Here is a project将此作为资源管理器上下文菜单完成。在这个人的情况下,他寻找在特定文件夹中打开的文件。

然后,您必须将文件名与打印作业中的文件相匹配。

顺便说一句,这不是C#,但你可以包装并调用他正在使用的相同调用。其余的由你决定。 ;)

答案 1 :(得分:0)

假设您有StreamFileStream对象,那么只需进行演员和审讯:

Stream str = printJob.JobStream;
FileStream fileStream = str as FileStream
if( fileStream != null ) {

    String fileName = fileStream.Name;
}