2011-10-12 25 views
1

我處於一種情況,我希望使用C#查看目錄中的.iso文件,並確定它們是否確實是視頻光盤(DVD/BD或類似的)。確定.iso是否實際上是C#中的視頻/電影#

我不需要真正區分類型,只是一個毯子「是的,這是一個視頻光盤」。有沒有辦法做到這一點?

+1

.ISO是不是一種視頻格式。它是用於識別可能包含視頻或不包含視頻的CD或DVD映像的擴展。見http://en.wikipedia.org/wiki/ISO_image – MPelletier

+0

正確。我正在尋找一種方法來查看光盤映像,並確定它是否是電影而不是例如PlayStation 2遊戲。 – Redshirt

回答

2

ISO文件實際上是文件格式的CD映像。確定它的最簡單方法是使用虛擬CD程序進行安裝。或者你可以看看文件內容。

這裏是ISO文件的規格 http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html

後,你能確定是磁盤上什麼樣的信息,那麼你可以判斷是否有通過找出什麼這些文件的內容就可以了視頻信息。

這是一個更艱鉅的任務,然後只是確定文件結構。

此規範文件將只定義ISO文件。其他的CD格式,需要使用自己的規格讀取...

你可以決定是否使用文件頭數據

這裏是一個堆棧問題的更詳細一點解釋的類型是ISO的。

Using .NET, how can you find the mime type of a file based on the file signature not the extension

編輯

展望MIME類型的東西多一點表明,微軟將必須有針對頭數據的註冊MIME類型。它可能不知道它是一個ISO,並可能會告訴你application/octet-stream如果是這種情況,那麼你可以用相同的前256個字節作爲自己的判斷。確定一些事情,告訴你它是一個你可以處理的ISO文件。通常你可以知道前20個字節左右的文件是什麼類型和版本。

+0

如果我依次安裝,數百個.iso文件可能最終被解析,從而對應用程序的性能產生負面影響。我想你的建議是看看內容。具體來說,標題可能是要走的路。 – Redshirt

+0

請記住,此規範僅適用於ISO文件。其他光盤映像有自己的格式。你將不得不爲每一個構建一個解析器。 Lucily大多數文件都會在前256個字節內給出一些信息,告訴你它是什麼類型的文件。這是Macintosh和Linux等操作系統用來確定什麼類型的文件沒有擴展名時的數據。我將添加一個鏈接來確定頭部數據的文件類型。 –

+0

我使用mime類型函數的方式是獲取我可以使用的文件並使用它檢查他們的mime類型。然後我會在處理文件之前驗證他們是否有這種MIME類型。 –

0

我做了一些四處搜尋可以用來讀取/寫入ISO文件的庫。你只需要閱讀部分明顯,這個項目是你可能可以使用的東西http://discutils.codeplex.com/

0

另外提到,ISO文件包含文件系統。讀取它的最簡單方法是使用多種實用程序中的任何一種將其作爲虛擬驅動器安裝。一旦您將其安裝爲驅動器,您就可以通過檢查文件系統(即使用Directory.GetFiles和C#中的類似方法)確定它可能包含電影。

如果你想直接讀取文件的內容(沒有安裝它),我不知道該告訴你什麼。我聽說7-zip有一個API可以讓你讀取文件。您也可以查看DiscUtils,聲稱可以讀取ISO文件。

一旦您可以讀取文件系統的內容,請參閱http://en.wikipedia.org/wiki/DVD-Video的「文件系統」部分。這將告訴你什麼文件和目錄你應該期望在DVD電影的ISO中看到。

請注意,文件的存在表示圖像可能包含DVD電影。如果沒有單獨檢查文件內容,無法確定。追蹤單個文件類型的規格可能是一項更困難的任務。

相關問題