在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在C#中获得文件信息很容易,只需要用FileInfo类或者FileVersionInfo类就可以获得,但是如果想要获得文件的扩展信息,则无法从这两类来获得。不过在C#中,这也不是件难事,只要引入“Microsoft Shell Controls and Automation”这个COM就可以获得。 接下来就分别来介绍。 首先介绍FileInfo类,这个类非常简单,首先需要根据文件名来创建FileInfo对象,例如: using System.IO; FileInfo fi = new FileInfo( yourFileName ); 那么以后就可以通过此对象来访问文件一些属性,例如文件大小,创建时间,最后访问时间,最后写入时间等等,还可以通过访问对象的Attributes属性,来获得当前文件是只读、隐藏之类属性,这里我就不细说了,详情参看MSDN。 第二个要说的,就是FileSystemInfo类,这个类是FileInfo类的基类,这里也就不多说了。 第三个要说的,就是如何判断一个文件的Version信息,这就需要来介绍FileVersionInfo这个类。但是并不是所有的文件都有Version信息,因此在使用FileVersionInfo的时候需要注意的是,最好先判断一下文件的扩展名。不过一个FileVersionInfo类对象不能通过构造函数来创建,需要调用类的静态方法来获得,例如: using System.Diagnostics; FileVersionInfo fvi = FileVersionInfo.GetVersionInfo( yourFileName ); 通过此对象,可以获得文件的产品名称,公司名,版本号,语言版本,版权等等,这方面详情可以参看MSDN。 最后要说的,就是如何得到一个文件的扩展信息,例如标题,作者等等,这些信息从如上三个类中是无法获得。但是要在C#程序中获得,就需要引入一个“Microsoft Shell Controls and Automation”这个COM,这个COM是由系统“Shell32.dll”而提供。这方面的例子,可以参看如下这篇文章。 http://www.codeproject.com/csharp/detailedfileinfo.asp 为了方便大家使用,我把其中类的代码贴出来。 using Shell32; // Use this namespace after add the reference /// <summary> /// Returns the detailed Information of a given file. /// </summary> public class CFileInfo { private string sFileName ="", sFullFileName="", sFileExtension="", sFilePath = "", sFileComment = "", sFileAuthor = "", sFileTitle = "", sFileSubject = "", sFileCategory = "", sFileType = ""; private long lFileLength = 0, lFileVersion = 0; private DateTime dCreationDate, dModificationDate; public CFileInfo(string sFPath) {
// check if the given File exists if(File.Exists(sFPath)) { ArrayList aDetailedInfo = new ArrayList(); FileInfo oFInfo = new FileInfo(sFPath); sFileName = oFInfo.Name; sFullFileName = oFInfo.FullName; sFileExtension = oFInfo.Extension; lFileLength=oFInfo.Length; sFilePath = oFInfo.Directory.ToString(); dCreationDate = oFInfo.CreationTime; dModificationDate = oFInfo.LastWriteTime;
#region "read File Details"
aDetailedInfo = GetDetailedFileInfo(sFPath); foreach(DetailedFileInfo oDFI in aDetailedInfo) { switch(oDFI.ID) { case 2: sFileType = oDFI.Value; break; case 9: sFileAuthor = oDFI.Value; break; case 10: sFileTitle = oDFI.Value; break; case 11: sFileSubject = oDFI.Value; break; case 12: sFileCategory = oDFI.Value; break; case 14: sFileComment = oDFI.Value; break; default: break; } } #endregion } else { throw new Exception("The given File does not exist"); } } #region "Properties" public string FileName { get{return sFileName;} set{sFileName=value;} } public string FilePath { get{return sFilePath;} set{sFilePath = value;} } public string FullFileName { get{return sFullFileName;} set{sFullFileName=value;} } public string FileExtension { get{return sFileExtension;} set{sFileExtension=value;} }
public long FileSize { get{return lFileLength;} set{lFileLength=value;} } public long FileVersion { get{return lFileVersion;} set{lFileVersion=value;} } public DateTime FileCreationDate { get{return dCreationDate;} set{dCreationDate=value;} } public DateTime FileModificationDate { get{return dModificationDate;} set{dModificationDate=value;} }
public string FileType { get{return sFileType;} } public string FileTitle { get{return sFileTitle;} } public string FileSubject { get{return sFileSubject ;} } public string FileAuthor { get{return sFileAuthor ;}
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论