ファイルの情報を取得する

ネタ切れです。
最近、ノーツの仕事が減っているのもあって、なかなかネタが増えません。
ネタを増やすためにも、仕事の依頼をお待ちしておりますm(_ _)m

さて、今日はそんな中、あまりノーツには縁がなさそうなサンプルの紹介です。
ファイルの情報を取得するというものです。
ファイルのサイズや属性(読み取りとか、隠しとか)程度であれば、Win32APIを使わなくてもLotusScriptの関数だけで取得可能というものです。

サンプルは、ダイアログで選択したファイルの「名前」「サイズ」「更新日」「属性」を取得して表示するものです。
ノーツDBに添付してあるファイルが正常にダウンロードできたかどうか?などの判定に使えるのではないでしょうか?

試してみてください。

下図は実行結果です。


%include "lsconst.lss"

Sub Click(Source As Button)
 Dim uiws As New NotesUIWorkspace
 Dim FullPath As Variant 'ファイルフルパス
 Dim FileName As String 'ファイル名
 Dim FileLength As Long 'ファイルの長さ
 Dim FileDate As Variant 'ファイルの更新日
 Dim FileAttribute As Integer 'ファイルの属性(GetFileAttrの戻り値)
 Dim FileZokusei As String 'ファイルの属性
 
 'ファイル名の設定
 FullPath = uiws.OpenFileDialog( False, "ファイルの選択", "*|*", "", "" )
 If Isempty( FullPath ) Then Exit Sub
 FileName = Strrightback( FullPath(0), "\" )
 
 'ファイル情報の取得
 FileLength = Filelen( FullPath(0) )
 FileDate = Filedatetime( FullPath(0) )
 
 'ファイル属性の取得
 FileAttribute = Getfileattr( FullPath(0) )
 If ( FileAttribute% And ATTR_READONLY ) Then FileZokusei = FileZokusei & " 読み込み専用 "
 If ( FileAttribute% And ATTR_HIDDEN ) Then FileZokusei = FileZokusei & " 隠し "
 If ( FileAttribute% And ATTR_SYSTEM ) Then FileZokusei = FileZokusei & " システム "
 If ( FileAttribute% And ATTR_ARCHIVE ) Then FileZokusei = FileZokusei & " アーカイブ "
 
 'ファイル情報の表示
 Messagebox _
 "名前: " & Chr$(9) & FileName & Chr$(10) & _
 "フルパス:" & Chr$(9) & FullPath(0) & Chr$(10) & _
 "サイズ: " & Chr$(9) & Format( FileLength, "#,###" ) & Chr$(10) & _
 "更新日:" & Chr$(9) & FileDate & Chr$(10) & _
 "属性:" & Chr$(9) & FileZokusei , _
 MB_OK + MB_ICONINFORMATION, "ファイル情報"
End Sub




【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

コメント

匿名 さんのコメント…
ものすごく勉強になります。ありがとうございます。
@関数で、ダイアログボックス表示からファイル名を取得はできるのですが、フォルダ名の取得はどういう関数を使えばよいのでしょうか。ぜひ、教えてください。よろしくお願いします。