私のアプリケーションは、フォルダー内のワード、エクセルなどの ms office ドキュメントを検索し、メタデータ内のタグを読み取ります。
しかし、関数がパスワードで保護された (パスワードが必要な) ファイルを開こうとすると、関数がハング/停止します。
ファイルがパスワードで保護されていたことを検出するにはどうすればよいですか? はいの場合、このファイルをスキップして次のファイルに進みます。
'Read Word metadata
Public Sub ReadWord(WordFileName As String)
Dim Wapp As New Microsoft.Office.Interop.Word.Application
Dim docWord As New Microsoft.Office.Interop.Word.Document
If Wapp Is Nothing Then
Wapp = New Microsoft.Office.Interop.Word.Application
End If
If docWord Is Nothing Then
docWord = New Microsoft.Office.Interop.Word.Document
Else
docWord.Close()
End If
docWord = Wapp.Documents.Open(WordFileName)
Dim _BuiltInProperties As Object = docWord.BuiltInDocumentProperties
If Not _BuiltInProperties Is Nothing Then
word_keyword = _BuiltInProperties("Keywords").Value
End If
If Not docWord Is Nothing Then
docWord.Close()
End If
If Not Wapp Is Nothing Then
Wapp.Quit()
End If
End Sub
'Read Excel metadata
Public Sub ReadExcel(ExcelFileName As String)
Dim Wapp As New Microsoft.Office.Interop.Excel.Application
Dim excelbook As Microsoft.Office.Interop.Excel.Workbook
If Wapp Is Nothing Then
Wapp = New Microsoft.Office.Interop.Excel.Application
End If
excelbook = Wapp.Workbooks.Open(ExcelFileName)
Dim _BuiltInProperties As Object = excelbook.BuiltinDocumentProperties
If Not _BuiltInProperties Is Nothing Then
excel_keyword = _BuiltInProperties("Keywords").Value
End If
If Not excelbook Is Nothing Then
excelbook.Close()
End If
If Not Wapp Is Nothing Then
Wapp.Quit()
End If
End Sub