拡張子つきでファイル名を取得するには?

解決


N谷  2002-11-24 00:52:07  No: 105503

フォームの中にドラッグドロップされると拡張子つきでファイル名のみを取得し、そのファイルを圧縮する、というのをつくろうとしているんですが、ドラッグドロップされたらパスを取得するやり方も、そこから拡張子つきでファイル名のみを取得するやり方もわかりません。どなたかご教授ください。


oku  URL  2002-11-24 07:50:26  No: 105504

フォームにドラッグドロップされたパスを取得するのは、簡単ですよ。
OLEDropModeを1=手動にすれば、OKです。
ファイル名のみ抽出は、いくつか方法があるんですが、
APIとか、自作とか、自分は、APIを使うことが多いので、
そちらの方法を書きますね。

Option Explicit
Private Declare Sub PathStripPath Lib "SHLWAPI.DLL" Alias "PathStripPathA" _
                                (ByVal pszPahth As String)
'
' パスを取り除く。
'
Private Function StripPath(ByVal strPath As String) As String
    ' strPath   : フルパスのファイル名
    ' 戻り値    : パス名を除いてファイル名だけが返る。

    Dim lngResult As Long
    Call PathStripPath(strPath)
    If InStr(strPath, vbNullChar) > 0 Then
        StripPath = Left$(strPath, InStr(strPath, vbNullChar) - 1)
    End If
End Function

Private Sub Form_Load()
    Form1.OLEDropMode = 1
End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim objFile As Variant
    
    For Each objFile In Data.Files
        MsgBox StripPath(objFile)
    Next
End Sub

APIでやる方法も自分が知っている限り2つあります。
そのひとつを書いてます。
これで良いですか?


N谷  2002-11-25 07:59:12  No: 105505

ありがとうですw
これからもよろしくですぅ


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加