none
检测是否存在指定盘符问题,该盘是映射的网络驱动器 RRS feed

  • 问题

  • 因为不是U盘,而是网络驱动器,我试过WM_DEVICECHANGE的方法对U盘可以,但是网络驱动器不行,这个软件登入后会挂载在N盘,所以我想用检测盘符的办法。只有知道了盘符挂载上去,剩下的事情我会处理,谢谢。
    支持GNU运动,支持开源软件。 Microsoft的平台只适合游戏与3D绘图。 不过Mircosoft的IDE真的好用。 要是wine够强就好了。
    • 已编辑 minamo 2011年11月13日 4:00
    2011年11月8日 5:38

答案

  • #include <io.h>
    #include <winnetwk.h>
    CString Tempath = _T("z:");
    if (_access(Tempath,0) != 0)
    {
          MessageBox("Z:不存在!");
    }


    Keep it simple
    • 已标记为答案 Rob Pan 2011年11月29日 8:03
    2011年11月17日 1:47

全部回复

  • 因为不是U盘,而是网络驱动器,我试过WM_DEVICECHANGE的方法对U盘可以,但是网络驱动器不行,这个软件登入后会挂载在N盘,所以我想用检测盘符的办法。只有知道了盘符挂载上去,剩下的事情我会处理,谢谢。
    支持GNU运动,支持开源软件。 Microsoft的平台只适合游戏与3D绘图。 不过Mircosoft的IDE真的好用。 要是wine够强就好了。


     尝试 EnumDeviceDrivers。

    WM_DEVICECHANGE 只能检测硬件,而且在特定的时候,还不行。

     

    还有,我喜欢 Windows 的开放,而不是 GNU 的开源。

    如果在开源和开放之间选择,我希望是 Microsoft 更加的开放。


    我也有自己的签名档哦!
    2011年11月8日 6:58
  • 谢谢,我会去试验的
    支持GNU运动,支持开源软件,开源能帮助我们。 Microsoft的平台只适合游戏。 不过Mircosoft的IDE真的好用。
    2011年11月10日 4:54
  • 我想我没把问题说清楚,这个相对于映射网络驱动器,这个似乎不行
    支持GNU运动,支持开源软件,开源能帮助我们。 Microsoft的平台只适合游戏。 不过Mircosoft的IDE真的好用。
    2011年11月11日 2:06
  • 你好,

     

    我建议您可以尝试用GetDriveType方法来查找是否有指定盘符存在。例如:

    #include "windows.h"

    #include "stdio.h"

     

    int main()

    {

     

        if (GetDriveType("B:") != DRIVE_NO_ROOT_DIR)

            printf("B Yes\n");

        else

            printf("B NO\n");

     

        if (GetDriveType("C:") != DRIVE_NO_ROOT_DIR)

            printf("C Yes\n");

        else

            printf("C NO\n");

     

     

        return 0;

    }

     


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 Rob Pan 2011年11月29日 8:04
    • 取消答案标记 minamo 2011年12月6日 8:33
    2011年11月16日 8:03
  • #include <io.h>
    #include <winnetwk.h>
    CString Tempath = _T("z:");
    if (_access(Tempath,0) != 0)
    {
          MessageBox("Z:不存在!");
    }


    Keep it simple
    • 已标记为答案 Rob Pan 2011年11月29日 8:03
    2011年11月17日 1:47