2014-01-23 54 views
1

我正在使用MS Access並嘗試從完整的文件路徑中提取文件名。 例如,考慮表中的列名:從給定路徑中提取文件名

Path    | Directory | FileName | extension 
--------------------------------------------------------- 
C:\temp\xyz.txt | C:\temp  | xyz  | txt 
C:\myPath\tp.doc | C:\myPath | tp  | doc 

在Access查詢設計視圖中,我使用下面生成「目錄」值:

Left([Path],(InStrRev([Path],"\"))) 

我不能爲FileName和擴展列提取正確的值。任何想法都可以做到,而不必在模塊中編寫它會很好。

回答

1

使用Mid()與那些其他函數來獲取文件基名。並Right()應該是有用的,以獲得擴展。

Path = "C:\temp\xyz.txt" 
? Mid(Path, InStrRev(Path,"\") + 1, InStrRev(Path,".") - InStrRev(Path,"\") - 1) 
xyz 
? Right(Path, Len(Path) - InstrRev(Path, ".")) 
txt 

Path = "C:\myPath\tp.doc" 
? Mid(Path, InStrRev(Path,"\") + 1, InStrRev(Path,".") - InStrRev(Path,"\") - 1) 
tp 
? Right(Path, Len(Path) - InstrRev(Path, ".")) 
doc 

希望你不會有任何複合文件的擴展名如.tar.gz。 :-)

+0

@HansUpThat像一個魅力。 :)是的,我沒有像你提到的雙點複合擴展。 – noobcoder

相關問題