我正在使用打印作业,PrintSystemJobInfo
并且此类没有文件的路径(打印作业)。所以,我想知道是否有一个类可以使用打开的文件名(在内存中)并且这个类返回完整路径。此打开的文件可能是.doc、.pdf、.xls、.txt等。
拜托,有人可以指出我正确的方向或有一个想法......这将非常有帮助......
我正在使用打印作业,PrintSystemJobInfo
并且此类没有文件的路径(打印作业)。所以,我想知道是否有一个类可以使用打开的文件名(在内存中)并且这个类返回完整路径。此打开的文件可能是.doc、.pdf、.xls、.txt等。
拜托,有人可以指出我正确的方向或有一个想法......这将非常有帮助......
查找打开文件句柄的唯一方法是使用 NtQuerySystemInformation 调用。这是一个将其作为资源管理器上下文菜单完成的项目。在这个人的案例中,他查找在特定文件夹中打开的文件。
然后,您必须将文件名与打印作业中的文件匹配。
顺便说一句,这不是 C#,但您可以包装和调用他正在使用的相同调用。剩下的就靠你自己想办法了。;)
假设您有一个Stream
对象,FileStream
那么只需进行强制转换和询问:
Stream str = printJob.JobStream;
FileStream fileStream = str as FileStream
if( fileStream != null ) {
String fileName = fileStream.Name;
}