我试图使用VBScript制作我的电影库的数据库,但我不知道如何获得mp4文件的属性。出于类似的目的,我在另一个问题中使用了这段代码。以下是我目前编写的代码。
Option Explicit
Dim objFSO,objf,objfolder, objFile, strFileProperties, strFiles,OBJFLD,objfile2
dim objf1,objfile1,objtextfile,strfolderproperties,objsubfld,objfl,objfl1,strfileproperties2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objf= objFSO.Getfolder("E:Share DriveChrisMovies")
set OBJfl=objf.files
for each objfl1 in OBJfl
'display properties of the files of the main folder
strFileProperties2 = strFileProperties2 & "Title: " & objfl1.Name & VbCrLf
strFileProperties2 = strFileProperties2 & "Size: " & objFl1.Size & " bytes" & VbCrLf
strFileProperties2 = strFileProperties2 & "Type: " & objFl1.Type & VbCrLf & vbcrlf
next
set objf1=objfso.getfolder("C:")
set objfile1=objfso.getfile( "C:database.txt")
set objf1=nothing
set objfile1=nothing
set objtextfile=objfso.opentextfile("C:database.txt",8,true)
objtextfile.writeline(strfileproperties)
objtextfile.writeline(strfileproperties2)
objtextfile.close
set objf1=objfso.getfolder("C:")
set objfile1=objfso.getfile( "C:database.txt")
set objf1=nothing
set objfile1=nothing
set objsubfld=objfso.opentextfile("C:database.txt",8,true)
objsubfld.writeline(strfolderproperties)
objsubfld.close
我想要的其他属性是帧宽度,帧高度和长度。我试过objMp4File.Length
,但我得到一个错误,说它没有定义。我是新来的VBScript,所以我可能会在这个错误的方式。
这取决于你的操作系统,对于Windows 7这将工作,参见http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870%28v=vs.85%29.aspx;
fname = objFolder.GetDetailsOf(objFolderItem, 155)
size = objFolder.GetDetailsOf(objFolderItem, 1)
ftype = objFolder.GetDetailsOf(objFolderItem, 2)
length = objFolder.GetDetailsOf(objFolderItem, 27)
frameheight = objFolder.GetDetailsOf(objFolderItem, 283)
framewidth = objFolder.GetDetailsOf(objFolderItem, 285)
试一试
Option Explicit
Dim shellApplication, folderNamespace
Set shellApplication = CreateObject("Shell.Application")
Set folderNamespace = shellApplication.Namespace("E:Share DriveChrisMovies")
Dim headers, i, aHeaders(290)
For i = 0 to 289
aHeaders(i) = folderNamespace.GetDetailsOf(folderNamespace.Items, i)
Next
Dim fileName
For Each fileName in folderNamespace.Items
If LCase(Right(fileName,4))=".mp4" Then
For i = 0 to 289
Wscript.Echo i & vbtab & aHeaders(i) & ": " & folderNamespace.GetDetailsOf(fileName, i)
Next
WScript.Echo "-------------------------------------------------------"
End If
Next
每种类型的文件可用的属性集可以并且将会有所不同。