怎样判断一个字符窜为合法文件名,比如字符串中有 '/' '?'等符号就不合法,delphi中提供了这样的函数吗?如果没有岂不要自己写,另外再问一下,win9x和winnt的文件名都不支持哪些字符

解决方案 »

  1.   

    try
      按文件名Save一下;
    except
      非法!;
      Exit;
    end
    合法!;
      

  2.   

    收集来的 不知道有没有用
    // 包括文件名的路径名中分离出目录名和文件名.
    function MPathAndFile(const strFull: String; var strPath, strName: String): Boolean;
    var
      iCnt, iPos  : Integer;
    begin
      iPos := -1;
      for iCnt := 1 to Length(strFull) do begin
        if strFull[iCnt] = '\' then iPos := iCnt;
      end;
      if iPos <> -1 then begin
        strPath := Copy(strFull, 1, iPos);
        strName := Copy(strFull, iPos+1, Length(strFull)-iPos);
        Result := True;
      end
      else Result := False;
    end;////////////////////////////////////////////////////////////////////////
    // 从文件名中分离出名称和扩展名.
    function MNameAndExt(const strFull: String; var strName, strExt: String): Boolean;
    var
      iCnt, iPos  : Integer;
    begin
      iPos := -1;
      for iCnt := 1 to Length(strFull) do begin
        if strFull[iCnt] = '.' then iPos := iCnt;
      end;
      if iPos <> -1 then begin
        strName := Copy(strFull, 1, iPos-1);
        strExt := Copy(strFull, iPos+1, Length(strFull)-iPos);
        Result := True;
      end
      else Result := False;
    end;
      

  3.   

    function IsValidFileName(FileName: string): Boolean;
    {
      判断FileName是否是合法的文件名,是,返回True,否则,返回False;
    }
    var
      i: integer;
    begin
      result := True;
      for i := 1 to Length(FileName) do
        if FileName[i] in ['<', '>', '?', '/', '\', ':', '*', '|', '"'] then
        begin
          result := False;
          Exit;
        end;
    end;
      

  4.   

    谢谢 jackie168(花好月圓)
          surdon(ャ野马ャ)
          zzlingaaa(小舟)