从ASP.Net C#应用程序中,我需要从驻留在本地文件系统上的多个(100+)文件中访问“Title”属性值。
e.g。右键单击文件系统上的文件,然后选择“属性”。在“摘要”标签中,有一个“标题”属性以及“主题”,“类别”等属性。我追踪的是'Title'属性中的值。
在使用Cassini开发Web应用程序和测试时,我能够使用Shell32.dll提取'Title'属性值
Folder folder = _shell.NameSpace(Path.GetDirectoryName(path));
FolderItem item = folder.ParseName(Path.GetFileName(path));
folder.GetDetailsOf(item, (int)eDetailColumns.Title);
在IIS中运行时,上述代码不起作用。 'folder'对象不包含任何项目。
我已经读过ASP.Net工作进程没有正在运行的资源管理器实例 - 因此没有Shell导致我的Shell32代码无法正常运行。
我是否有另一种方法可以从ASP.Net应用程序中提取'Title'属性值?
提前致谢。
答案 0 :(得分:1)
我刚刚测试了IIS7中运行的以下代码,我可以访问我创建的word文档的标题以及属于它的各种其他属性:
Shell shell = new Shell();
string path = Server.MapPath("~/Word.doc");
Folder folder = shell.NameSpace(Path.GetDirectoryName(path));
FolderItem folderItem = folder.ParseName(Path.GetFileName(path));
for(int i = 0; i < 32; i++)
{
Response.Write(i + " : " +folder.GetDetailsOf(folderItem, i) + "<br/>");
}