Public Function JetGetFile_MainName$(ByVal JetTemp_FileName$)
' 目的:取得檔案主檔名(藉由分離 主檔名 及 副檔名)
'
' ●部份功能 = fs.GetBaseName(JetTemp_FileName$)
'
' 參照:
' 【Module】
' (1) 本 Module 中的 JetCheckFileName、JetGetFileName
'
' =============================================================================
' 參數一(JetTemp_FileName$):〔路徑 + 〕 主檔名 〔 + 副檔名〕
' =============================================================================
' 只留下檔名
' (1)先扣除 路徑(若有的話)
If InStrRev(JetTemp_FileName$, "\") <> 0 Then JetTemp_FileName = JetGetFileName$(JetTemp_FileName)
' (2)再扣除 副檔名(若有的話)
If InStrRev(JetTemp_FileName$, ".") <> 0 Then
JetGetFile_MainName$ = Left(JetTemp_FileName$, InStrRev(JetTemp_FileName$, ".") - 1)
Else
JetGetFile_MainName$ = JetTemp_FileName$
End If
' ◎過瀘掉含有不正當的命名(檔案)
If Not JetCheckFileName(JetGetFile_MainName$) Then
MsgBox "一、『" & JetGetFile_MainName$ & "』 主檔名可能有誤!" & vbCrLf & " 其中含有不合法的字元" & vbCrLf & vbCrLf & " 導致傳入 JetCheckFileName 的結果是 False!!!" & vbCrLf & vbCrLf & "二、 JetCheckFileName Module 中判斷有誤!", vbCritical, "From 『JetGetFile_MainName$』"
JetGetFile_MainName$ = ""
End If
End Function
Public Function JetGetFile_SubName$(ByVal JetTemp_FileName$, Optional ByVal JetTrue_Mustbe_SubName As Boolean, Optional ByVal JetTrue_GetDot As Boolean)
' 目的:取得檔案副檔名(藉由分離 主檔名 及 副檔名)
'
' ●部份功能 = fs.GetExtensionName(JetTemp_FileName$)
'
' 參照:
' 【Module】
' (1) 本 Module 中的 JetCheckFileName、JetGetFileName
'
' =============================================================================
' 參數一(JetTemp_FileName$):〔路徑 + 〕〔 主檔名 + 〕 副檔名(含前面的 ".")
' -----------------------------------------------------------------------------
' 【(2)非必要參數】
' 參數二(JetTrue_Mustbe_SubName):(是否) 可以傳入不含 "." ==> 但仍要判定為 副檔名
' ◎目前偶只能借助 "." 來取得副檔名的實際內容
' 所以當 此參數為 True 時,一定是確定 傳入的參數一的值內 一定 含副檔名
' (1) 含 "."
' (2)不含 "." ==> 就是被扣除"." or 原來就指定成 不含"."的副檔名 的參數
' 針對 上一行介紹的 (2) 的情況時比較 OK
' EX:把 "MDB" 傳入本 Function ==> 傳出結果 將會是 ""
' 而若是此 參數改設成 True,則還是能得到 "MDB"
' 參數三(JetTrue_GetDot) :(是否) 含"."
' =============================================================================
Dim III%
' 只留下檔名
If InStrRev(JetTemp_FileName$, "\") <> 0 Then JetTemp_FileName = JetGetFileName$(JetTemp_FileName)
If JetTrue_GetDot Then III = 1
If InStrRev(JetTemp_FileName$, ".") <> 0 Then
JetGetFile_SubName$ = Mid(JetTemp_FileName$, InStrRev(JetTemp_FileName$, ".") + 1 - III)
' ◎過瀘掉含有不正當的命名(檔案)
If Not JetCheckFileName(JetGetFile_SubName$) Then
MsgBox "一、『" & JetGetFile_SubName$ & "』 副檔名可能有誤!" & vbCrLf & " 其中含有不合法的字元" & vbCrLf & vbCrLf & " 導致傳入 JetCheckFileName 的結果是 False!!!" & vbCrLf & vbCrLf & "二、 JetCheckFileName Module 中判斷有誤!", vbCritical, "From 『JetGetFile_SubName$』"
JetGetFile_SubName$ = ""
End If
Else
' 若 傳入的沒有 "." ==> 難以判別 來源
'(1)把結果設定成""(下一行程式碼可有可無,因為字串預設值本來就是"")
' 針對本Function的目的來說,結果比較合理性
' EX:把 "C:\12345678\ 34567 TXT" 傳入本 Function ==> 傳出結果 將會是 ""
' JetGetFile_SubName$ = ""
'(2)把結果設定成傳入的字串(去除 路徑)
' 針對 忘了 傳入 . 的參數比較 OK
' EX:把 "MDB" 傳入本 Function ==> 傳出結果 將會是 ""
If JetTrue_Mustbe_SubName Then JetGetFile_SubName$ = JetTemp_FileName$
End If
End Function
Public Function JetGetFileName$(ByVal JetTemp_PathFile$)
' 目的:取得檔案(完整名稱)(藉由分離 檔案 及 路徑)
'
' ●部份功能 = fs.GetFileName(JetTemp_PathFile$)
'
' 參照:
' 【Module】
' (1) 本 Module 中的 JetCheckFileName
'
' =============================================================================
' 參數一(JetPathFile$):完整路徑 + 檔名
' =============================================================================
JetGetFileName$ = Mid(JetTemp_PathFile$, InStrRev(JetTemp_PathFile$, "\") + 1)
' ◎過瀘掉含有不正當的檔名
If Not JetCheckFileName(JetGetFileName$) Then
MsgBox "一、『" & JetGetFileName$ & "』 檔案名稱可能有誤!" & vbCrLf & " 1.含有不合法的字元" & vbCrLf & " 2.路徑 或 磁碟機代號 不存在" & vbCrLf & vbCrLf & " 導致傳入 JetCheckFileName 的結果是 False!!!" & vbCrLf & vbCrLf & "二、 JetCheckFileName Module 中判斷有誤!", vbCritical, "From 『JetGetFileName$』"
JetGetFileName$ = ""
End If
End Function
|