如何用C 獲得檔案資訊以及擴充套件資訊

2022-03-23 06:36:54 字數 2277 閱讀 1811

在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」而提供。這方面的例子,可以參看如下這篇文章。

為了方便大家使用,我把其中類的**貼出來。

using shell32; // use this namespace after add the reference

/// 

/// returns the detailed information of a given file.

/// 

public class cfileinfo

}#endregion

}else

}#region "properties"

public string filename

set}

public string filepath

set}

public string fullfilename

set}

public string fileextension

set}

public long filesize

set}

public long fileversion

set}

public datetime filecreationdate

set}

public datetime filemodificationdate

set}

public string filetype

}public string filetitle

}public string filesubject

}public string fileauthor

}public string filecategory

}public string filecomment

}#endregion

#region "methods"

private arraylist getdetailedfileinfo(string sfile)

}catch(exception)

}return areturn;

}#endregion

}// helper class from holding the detailed file informations

// of the system

public class detailedfileinfo

set}

public string value

set}

public detailedfileinfo(int id, string value)

}

如何用C 獲得檔案資訊以及擴充套件資訊

在c 中獲得檔案資訊很容易,只需要用fileinfo類或者fileversioninfo類就可以獲得,但是如果想要獲得檔案的擴充套件資訊,則無法從這兩類來獲得。不過在c 中,這也不是件難事,只要引入 microsoft shell controls and automation 這個com就可以獲得...

如何用C 獲得檔案資訊以及擴充套件資訊

在 c 中獲得檔案資訊很容易,只需要用 fileinfo 類或者fileversioninfo 類就可以獲得,但是如果想要獲得檔案的擴充套件資訊,則無法從這兩類來獲得。不過在 c 中,這也不是件難事,只要引入 microsoft shell controls and automation 這個com...

如何用Python寫C擴充套件?

1.環境準備 如果是linux只需要安裝python3.x python dev。windows下稍微複雜點,vs2017 python3.6.3 vs2017可用社群版,需要選擇安裝的環境如下 2.1 c模組封裝 以計算兩個數相加為例,選擇任意資料夾,新建如下c語言原始碼 檔名 calc.c in...