Delphi/C++ Builder の ExtractFilePath 関数 ファイル名のドライブとディレクトリ部分を返す関数だが、単純にデリミタ(\)を後ろから検索しているだけなので、ネットワークドライブの時に、正しい区切りを取得できない \\svr\shareddir\hoge → \\svr\shareddir\ \\svr\shareddir → \\svr\ という値が返ってくる ネットワークドライブの場合 \\svr\shareddir までがドライブのため \\srv\ という表記は無いワケ ExtractFileDrive を利用すると \\svr\shareddir が返ってくるので function ExtractFilePathEx(S: string): string; var Drive, Path: string; begin Drive := IncludeTrailingPathDelimiter(ExtractFileDrive(S)); Path := ExtractFilePath(S); if (Length(Drive) > Length(Path)) then begin Result := Drive; end else begin Result := Path; end; end; みたいにすると \\svr までさかのぼらずに済む