如何判断文件名中包含\ / : * ? " < > | 等无效字符,有没有系统API?

解决方案 »

  1.   

    自己过滤掉就行了, CString strFileName;int nIndex=strFileName.Find('?');
    if(nIndex == -1)
    {
       //没有非法的
    }就这样自己找吧。
      

  2.   

    同意zaodt(至尊宝宝:我就在你身旁,关心永远不打烊!) ,注意建文件成功后要删除
      

  3.   

    同意 Big_Stone(),自己过滤非法字符。使用“试着建立文件,判断返回值。”的方法,如果返回值为 FALSE,可能不是文件名中包含非法字符的原因,可能无写文件权限、路径错误等等。
      

  4.   

    使用“试着建立文件,判断返回值。”的方法,如果返回值为 FALSE,可能不是文件名中包含非法字符的原因,可能无写文件权限、路径错误等等。------
    如果是使用CreateFile建立文件的话,可以用GetLastError()区分错误,CFile好像没有
      

  5.   

    const char* szDest = "\\/:*?\"<>|";
    std::string str = "A.txt"; int npos = str.find_first_of(szDest);
    if (npos != -1)
    {
    printf("有非法字符\n");
    }
    else
    {
    printf("ok\n");
    }