ASP.Net从File中提取'Title'属性值

时间:2010-12-21 16:49:04

标签: asp.net iis shell file-io

从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'属性值?

提前致谢。

1 个答案:

答案 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/>");
}