獲取檔案路徑(Delphi )----轉貼

exocet發表於2011-06-03

ExtractFileDrive :返回完整檔名中的驅動器,如"C:"
ExtractFilePath:返回完整檔名中的路徑,最後帶“/”,如"C:test"
ExtractFileDir:返回完整檔名中的路徑,最後不帶“/” ,如"C:test"
ExtractFileName:返回完整檔名中的檔名稱 (帶副檔名),如"mytest.doc"
ExtractFileExt 返回完整檔名中的副檔名(帶.),如".doc"

ExtractRelativePath : 返回相對路徑,

[@more@]

定義如下:
function ExtractRelativePath(const BaseName, DestName: string): string;
使用測試下如:
SysUtils.ExtractRelativePath('C:test','C:TestTestRelativePath'):返回TestRelativePath
SysUtils.ExtractRelativePath('C:TestTestRelativePath','C:test'):返回'..TestRelativePath'
SysUtils.ExtractRelativePath('C:TestTestRelativePath','C:test'):返回'....TestRelativePath'
ExtractShortPathName :返回短檔名,即8+3,檔名長八位,副檔名為3號,為保持DOS系統相容而存在

若想獲取的檔名不帶路徑,可用:
ChangeFileExt(TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename,''); 函式將副檔名改掉即可.目前好象就這一種辦法,誰還有更好的辦法?請告知

另附其它地方的資料:

1、檔名函式
  檔名函式可以對檔案的名稱、所在子目錄、驅動器和副檔名等進行操作。下表列出這些函式及其功能。
函式 說明
ExpandFileName() 返回檔案的全路徑(含驅動器、路徑)
ExtractFileExt() 從檔名中抽取副檔名
ExtractFileName() 從檔名中抽取不含路徑的檔名
ExtractFilePath() 從檔名中抽取路徑名
ExtractFileDir() 從檔名中抽取目錄名
ExtractFileDrive() 從檔名中抽取驅動器名
ChangeFileExt() 改變檔案的副檔名
ExpandUNCFileName() 返回含有網路驅動器的檔案全路徑
ExtractRelativePath() 從檔名中抽取相對路徑資訊
ExtractShortPathName() 把檔名轉化為DOS的8·3格式
MatchesMask() 檢查檔案是否與指定的檔名格式匹配

ExtractFilePath(FileName:String)
該函式返回路徑名,其結尾字元總是“”

ExtractFileDir(FileName:String)
該函式同樣返回路徑名,但不包括結尾的字元“”,除非返回的路徑是根目錄。

  下面就把這些函式作一一介紹:

⑴ExpandFileName()
  原型:extern PACKAGE AnsiString __fastcall ExpandFileName(const AnsiString FileName);
  功能:返回檔案的全路徑(含驅動器、路徑)

  引數:FileName:要處理的檔名

  例:ShowMessage(ExpandFileName(Application->ExeName));//顯示你的程式檔名,如C:MyBCBSample1.EXE

⑵ExtractFileExt()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileExt(const AnsiString FileName);

  功能:從檔名中抽取副檔名

  引數:FileName:要處理的檔名(全路徑)

  例:ShowMessage(ExtractFileExt(Application->ExeName));//顯示".exe"

⑶ExtractFileName()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileName(const AnsiString FileName);

  功能:從檔名中抽取不含路徑的檔名

  引數:FileName:要處理的檔名

  例:ShowMessage(ExtractFileExt("c:WinntSOL.EXE"));//顯示"SOL.EXE"
⑷ExtractFilePath()
  原型:extern PACKAGE AnsiString __fastcall ExtractFilePath(const AnsiString FileName);

  功能:從檔名中抽取路徑名

  引數:FileName:要處理的檔名

  例:ShowMessage(ExtractFilePath("WinntSOL.EXE"));//顯示"Winnt"

⑸ExtractFileDir()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileDir(const AnsiString FileName);

  功能:從檔名中抽取目錄名(和上個函式不同,不包括最後的"")

  引數:FileName:要處理的檔名

  例:ShowMessage(ExtractFileDir("WinntSOL.EXE"));//顯示"Winnt",注意和上個函式的區別

⑹ExtractFileDrive()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileDrive(const AnsiString FileName);

  功能:從檔名中抽取驅動器名

  引數:FileName:要處理的檔名

  例:ShowMessage(ExtractFileDrive("c:WinntSOL.EXE"));//顯示"c:"

⑺ChangeFileExt()
  原型:extern PACKAGE System::AnsiString __fastcall ChangeFileExt(const System::AnsiString FileName, const System::AnsiString Extension);

  功能:更改檔名的副檔名,不是對真正的檔案進行改名,只是對檔名這個字串進行處理

  引數:FileName:要改名的檔名,Extension:新的副檔名

  例:ShowMessage(ChangeFileExt("c:WinntSOL.EXE",".OOO"));//顯示"c:winntSOL.OOO"

⑻ExpandUNCFileName()
  原型:extern PACKAGE AnsiString __fastcall ExpandUNCFileName(const AnsiString FileName);

  功能:返回含有網路驅動器的檔案全路徑,格式為:機器名共享名檔名

  引數:FileName:要處理的檔名

  例:ShowMessage(ExpandUNCFileName("F:WinntSOL.EXE"));/*如果F:是對映的網路驅動器,則顯示"

⑼ExtractRelativePath()
  原型:extern PACKAGE AnsiString __fastcall ExtractRelativePath(const AnsiString BaseName, const AnsiString DestName);

  功能:從檔名中抽取相對路徑資訊,如"..sssss.asd"這種形式

  引數:BaseName:基準檔名;DestName:目標檔名

  例:ShowMessage(ExtractRelativePath("D:Sourcec1.123","D:SourceAsmdz.asm"));/*顯示"..asmdz.asm"*/
⑽ExtractShortPathName()
  原型:extern PACKAGE AnsiString __fastcall ExtractShortPathName(const AnsiString FileName);

  功能:把檔名轉換為DOS的8、3格式

  引數:FileName:要處理的檔名

  例:ShowMessage(ExtractShortPathName("E:Program FilesDual Wheel Mouse4dmain.exe"));/*顯示"E:Progra~1dualwh~14dmain.exe"*/

⑾MatchesMask()
  原型:extern PACKAGE bool __fastcall MatchesMask(const AnsiString Filename, const AnsiString Mask);

  功能:檢查檔案是否與指定的檔名格式匹配

  引數:FileName:要處理的檔名;Mask:檔名格式,支援萬用字元

  例:ShowMessage(MatchesMask("Lxf.exe","*.?x?));//顯示"true"

本文來自CSDN部落格,http://blog.csdn.net/chinmusam/archive/2009/12/23/5060927.aspx

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/38085/viewspace-1050745/,如需轉載,請註明出處,否則將追究法律責任。

相關文章