局域网上A机已经开共享,共享目录下为txt文件。
B机上可正常拷贝A机上的文件到本机或用记事本直接打开。
可我自己用VC的CopyFile函数怎么都拷不下来,都是返回FALSE,使用CFile的Open函数也打开失败。
请教问题出在哪?
同样是C局域网上的另一C机的共享文件无论是CopyFile还是Open都成功。
难道是A机上的共享开得有问题?可在windows下托动拷贝或用记事本打开都没问题呀!!!!!
程序环境:Win7+VS2005。

解决方案 »

  1.   

    你用GetLastError看一下错误代码
      

  2.   

    这问题搞了两天都没结果,杯具ing...
    共享目录已经做映射,调试CFile的Open方法的CException的m_cause、m_LOSError的值均是3,看不出问题所在。甚至用了SHFileOperation方法也不行。
    难不成真是权限问题?可记事本打开与鼠标拖动拷贝怎么没问题??
    跪求高手解决方法!!
      

  3.   

    1.检查你的路径是否正确,比如:\\xx.xx.xx.xx要写成\\\\xx.xx.xx.xx
    2.copyfile第3个参数如果设置为true,检查本地目录下该文件是否已经存在
    3.检查打开目标目录时,是否需要输入用户名,密码之类。
      

  4.   

    拷贝过程(X:为映射盘符):
    strFile="X:\\Data\\2010_05_11.txt";
    if(!CopyFile(strFile,"E:\\Temp.txt",FALSE))
    {
    strErr="无法获取数据文件。";
    return FALSE;
    }打开过程:
    CFile file;
    CFileException ErrFile;
    if(!file.Open(strFile,CFile::shareDenyNone|CFile::modeRead,&ErrFile))
    {
    strErr="无法打开数据文件:"+strFile;
    return FALSE;
    }已经确定用记事本直接打开或鼠标拖动拷贝到本机都没问题。
    神啊救救我吧。
      

  5.   

    错误代码3:系统找不到指定的路径。检查输入路径。还有 \\机器名\file和\\ip地址\file虽然是指向相同的地址,但有可能都需要登陆的,你在资源管理器里正常,有可能登陆了\\机器名,如果程序是访问\\ip地址,没登陆就访问不了了。
      

  6.   

    呵呵 师傅说得对  路径很大问题。。好好测试下路径  另外 win7的底层文件储存方式 也制约着~
    win7的方式可能不同 到微软找下资料在win7 跟XP分别测试下
      

  7.   

    看似A机是XP系统,怀疑是Win7访问XP共享问题,查资料中...
      

  8.   

    试下用系统的xcopy命令能不能复制。 STARTUPINFO si = {0};
    PROCESS_INFORMATION pi = {0};
    si.cb = sizeof(STARTUPINFO);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;

    TCHAR Cmd[MAX_PATH];
    _stprintf_s(Cmd, _countof(Cmd), TEXT("xcopy \\\\server\\share\\1.txt d:\\"));
    if(!CreateProcess(NULL, Cmd, NULL, NULL, NULL, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi))
    {
    return FALSE;
    } WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread); return TRUE;
      

  9.   

    GetLastError
    看一下出错代码
      

  10.   

    最终答案:WIN7本机问题,禁用UAC就好了。
    看来尝鲜是要付出代价的,坐等MS的补丁...
    谢谢大家。