//请教一个把ftp某个目录映射为本地Z盘的问题,
//WNetAddConnection2返回值总是66,不成功//映射网络磁盘
void CVoiceRecordDlg::OnButton5() 
{
system("net use z: /del"); //删除之前映射的盘符
CString   HostName,UserName,Password;   
HostName =   "211.1.1.1"; //ftp的IP
HostName.Insert(0,"\\\\");   
HostName += "\\testFile";      //ftp目录中看到的文件夹
UserName="user";    //ftp用户名
Password ="pwd123"; //ftp密码 
NETRESOURCE  param1;  
param1.dwType = RESOURCETYPE_ANY;   
param1.lpLocalName = "Z:"; //ftp的某个目录映射为本地的Z盘  
param1.lpRemoteName = (LPTSTR)(LPCTSTR)HostName;   
param1.lpProvider =  NULL; //执行到此处,等待时间比较长(返回值为66)************************
DWORD   ret = WNetAddConnection2(&param1,(LPCTSTR)Password,(LPCTSTR)UserName,CONNECT_UPDATE_PROFILE); if (ret == NO_ERROR)
{
AfxMessageBox("Succeed!");
}
}

解决方案 »

  1.   

    66
    The network resource type is not correct. 
      

  2.   

        NETRESOURCE  param1;  
        param1.dwType = RESOURCETYPE_DISK;//RESOURCETYPE_ANY;   
        param1.lpLocalName = "Z:"; //ftp的某个目录映射为本地的Z盘  
        param1.lpRemoteName = (LPTSTR)(LPCTSTR)HostName;   
        param1.lpProvider =  NULL;
      

  3.   

    修改为下面的代码,ret返回67
    //映射网络磁盘
    void CVoiceRecordDlg::OnButton5() 
    {
        system("net use z: /del"); //删除之前映射的盘符
        CString   HostName,UserName,Password;   
        HostName =   "211.1.1.1"; //ftp的IP
        HostName.Insert(0,"ftp://");   
        HostName += "/testFile";      //ftp目录中看到的文件夹

        UserName="user";    //ftp用户名
        Password ="pwd123"; //ftp密码 
        NETRESOURCE  param1;  
        param1.dwType = RESOURCETYPE_ANY;   
        param1.lpLocalName = "Z:"; //ftp的某个目录映射为本地的Z盘  
        param1.lpRemoteName = (LPTSTR)(LPCTSTR)HostName;   
        param1.lpProvider =  NULL;    //执行到此处,等待时间比较长(返回值为66)************************
        DWORD   ret = WNetAddConnection2(&param1,(LPCTSTR)Password,(LPCTSTR)UserName,CONNECT_UPDATE_PROFILE);        if (ret == NO_ERROR)
        {
            AfxMessageBox("Succeed!");
        }
    }
      

  4.   

    修改为下面的代码,ret返回67
    //映射网络磁盘
    void CVoiceRecordDlg::OnButton5()  
    {
      system("net use z: /del"); //删除之前映射的盘符
      CString HostName,UserName,Password;  
     
    HostName = "211.1.1.1"; //ftp的IP
    HostName.Insert(0,"ftp://"); 
    HostName += "/testFile"; //ftp目录中看到的文件夹

    //使用 ftp://211.1.1/testFile 进入ftp  UserName="user"; //ftp用户名
      Password ="pwd123"; //ftp密码  
      NETRESOURCE param1;   
      param1.dwType = RESOURCETYPE_ANY;   
      param1.lpLocalName = "Z:"; //ftp的某个目录映射为本地的Z盘   
      param1.lpRemoteName = (LPTSTR)(LPCTSTR)HostName;   
      param1.lpProvider = NULL;  //执行到此处,等待时间比较长(返回值为67)
    DWORD ret = WNetAddConnection2(&param1,(LPCTSTR)Password,(LPCTSTR)UserName,CONNECT_UPDATE_PROFILE);     if (ret == NO_ERROR)
      {
      AfxMessageBox("Succeed!");
      }
    }
      

  5.   

    修改下面的代码,ret也是返回 67
    param1.dwType = RESOURCETYPE_DISK; 
     
      

  6.   

    地址应该是:
    ftp://user:[email protected]/testFile
      

  7.   

    刚刚在本地电脑共享一个文件d:\\testFileHostName = "\\IP\testFile",可以映射成功
      

  8.   

    刚刚用ftp://user:[email protected]/testFile
    还是无法映射成功,是否需要用到211.1.1.1这台电脑中,
    testFile肯定不是共享目录的根目录。
    文件的绝对路径?
      

  9.   

    可以映射某个共享目录?是否可以映射FTP的某个目录呢?
      

  10.   

    FTP目录又不是RPC协议的那个,这么可能映射成盘符?!网上有专门映射FTP到盘符的软件,不过用着很卡,不推荐。
      

  11.   

    可以把别的电脑上共享的某个目录,映射为本地的X盘但是把FTP的某个目录映射为本地的X盘,没有弄成功。