CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

如何获得相对路径?

楼主iPlanet(hjs)2001-05-24 11:46:00 在 C++ Builder / 基础类 提问

我记得,可以用GetCurrentDir(),在VB中有APP.PATH来获得相对路径,用CB编写ISAPI时,怎样设相对路径?就如ASP的APP.PATH一样方便?  
  多谢!  
  i_am_hjs@263.net 问题点数:20、回复次数:13Top

1 楼xycleo()虚竹和尚()回复于 2001-05-24 11:49:00 得分 0

GetCurrentPathTop

2 楼xycleo()虚竹和尚()回复于 2001-05-24 11:50:00 得分 0

ExtractFilePathTop

3 楼xycleo()虚竹和尚()回复于 2001-05-24 11:51:00 得分 0

ExtractFileDirTop

4 楼wjzhuang(程序猪)回复于 2001-05-24 11:52:00 得分 10

TApplication应用小技巧:  
  A.打开相对路径数据文件.通常要打开的数据文件(如程序需要使用的DBF数据文件,TXT/INI文件等)都不是固定路径,而是相对于应用程序的安装目录变化的.  
  AnsiString   filepath;  
  filepath=ExtractFilePath(Applcation->ExeName);  
  //ExtractFilePath与ExtractFileDir是有区别的.表现在ExtractFilePath最后总是有"\\",而ExtractFileDir只是在路径为根目录时最后才是"\\"  
  Table1->DatabaseName=filepath+"data";  
  Table1->TableName="maindb.dbf";  
  try{  
   
  Table1->Active=true;  
  }  
  catch(...)  
  {  
  //......  
  }  
   
  另外有一个函数ParamStr(int   index)与Application->ExeName有同样效果.ParaStr(0)就是应用程序命令行第一部分.也就是执行文件的全路径.  
  Top

5 楼wjzhuang(程序猪)回复于 2001-05-24 11:54:00 得分 0

AnsiString   currentpath   =   GetCurrentDir();Top

6 楼czylj(夭夭)回复于 2001-05-24 11:57:00 得分 0

我没有别的可说了,]  
  好像   c++   builder   的applica....有一个属性,指向当前的目录,不知有没有?Top

7 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2001-05-24 12:16:00 得分 0

我常编ISAPI,知道ExeName与ParamStr(0)都失效,  
  曾困恼我很久,是一个高手Sakra告诉我,才解决问题,  
  用API的GetModuleName(Handle)才能取得.DLL的绝对路径;  
      String   CurDir=ExtractFilePath(GetModuleName(handle));  
  handle在.dll的入口参数中取.  
   
           
   
  Top

8 楼iPlanet(hjs)回复于 2001-05-25 10:26:00 得分 0

谢谢各位!Top

9 楼dufeng3104(柏桦林)回复于 2001-05-25 10:44:00 得分 0

纠正一下  
  Sting   CurDir=ExtractFilePath(GetModuleFileName(HMODULE   hModule,LPTSTR   lpFilename,DWORD   nSize))  
   
  Top

10 楼dufeng3104(柏桦林)回复于 2001-05-25 10:47:00 得分 0

应该是  
  Sting   CurDir=ExtractFilePath(Ansistring(GetModuleFileName(HMODULE   hModule,LPTSTR   lpFilename,DWORD   nSize)))Top

11 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2001-05-25 12:28:00 得分 0

对,我忘了参数Top

12 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2001-05-25 12:36:00 得分 0

你也不对,GetModuleFileName()返回的是串长,不是串,要拆开  
                 
   
   
  Top

13 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2001-05-25 12:39:00 得分 10

你也不对,GetModuleFileName()返回的是串长,不是串,要拆开  
  extern     HINSTANCE   DllHandle;  
  String   CurDir;  
  void   __fastcall   TWebModule1::WebModuleCreate(TObject   *Sender)  
  {  
                char     DllPath[256];  
                GetModuleFileName((HMODULE)DllHandle,DllPath,sizeof(DllPath));  
                CurDir=ExtractFilePath(DllPath);       //   求当前目录  
  }  
         
   
   
  Top

相关问题

  • ASP如何获得上一页面的绝对路径、相对路径??
  • 如何写相对路径?
  • 请问如何把相对路径改相对根路径
  • 知道了一个文件的相对路径,如何获得这个文件的绝对路径?
  • 如何获得站点中某个目录的绝对路径和相对路径?
  • 如何取得相对路径
  • 如何取得相对路径
  • .NET中WINFORM如何实现VB6中APP.PATH命令功能获得应用程序获得路径设置相对路径?
  • 如何理解绝对路径和相对路径?
  • 如何使用绝对路径代替相对路径?

关键词

  • 相对
  • 文件
  • 数据
  • 路径
  • extractfilepath
  • exename
  • filepath
  • table1

得分解答快速导航

  • 帖主:iPlanet
  • wjzhuang
  • BCB

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo