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

2021-04-07 00:04:18 字數 3030 閱讀 7883

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...