GetCurrentDirectory和GetModuleName都可以实现,不过调用这些函数先得到路径,有没有api直接得到盘符?

解决方案 »

  1.   

    stdlib.h__cdecl _splitpath(const char *, char *, char *, char *, char *);试试
      

  2.   

    没有。读写文件中的API有关盘符的只有:UINT GetDriveType(LPCTSTR );//传入字串如"C:",返回此盘符的类型;
    DWORD GetLogicalDrives(VOID );//如果成功,返回一个DWORD,如果当前A盘符可用,则此DWORD的二进制第一位为1,否则为0;如果B盘符可用,则第二位为1,否则为0;类推;
    DWORD GetLogicalDriveStrings(DWORD, LPCTSTR);//得到当前可用的盘符,将可用盘符名字写入buf,返回写入字串的长度,写入格式:c:\<null>d:\<null><null> 
      

  3.   

    忘了说了,调完那两个函数再调他。没听说过有GetCurrentDriver之类的函数。
      

  4.   

    to webipstin     1:_splitpath函数没有试过,可以研究下 2:“调完那个函数”指哪两个函数?to fjbuilding    GetDriveType和GetLogicalDrivers两个函数枚举系统中的盘符,已寻找自己要的盘符。自己的代码就是用这两个函数。有人说有函数可以直接获得当前的盘符,就来这里问下大家。
            
      

  5.   

    有个函数PathGetDriveNumber,从路径中招出盘符并转化为数字,A盘式0,Z盘式25.
    可以这样调用:wsprintf(somestring ,"%c:\\", 'A' + (char)PathGetDriveNumber("A:\123\456"));
    得到A:\
      

  6.   

    to ColdMoon 方法不错,但就想知道用api函数直接得到盘符?等待大家回复?
      

  7.   

    用GetCurrentDirectory或者GetModuleName拿到路径后再用_splitpath解析好了
    没有直接得到盘符的API。
      

  8.   

    封装起来一个GetCurDevice();自己用,就当是别人开发的好了~
      

  9.   

    to dream238 
    to m_tornado 谢谢两位,经过查找,的确没有api得到盘符。