[futurebasic] GETFILEINFO

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : August 1998 : Group Archive : Group : All Groups

From: Mel and Carol Patrick <mel@...>
Date: Thu, 13 Aug 1998 19:09:22 -0700
>If you need to distinguish between a file and a directory, then use FN
>GETCATINFO after you've gotten the fsSpec record.  You need to set up
>the parameter block somewhat like this (your variable names may be
>different):

And in the spirit of GETCATINFO and GETFILEINFO, I have run across a rather
unusual problem. The routine below works perfectly on EVERY drive
EXCEPT....ta dah... an external  zip drive. If it tries to read files from
a zip, forget it. Move the same files to the hard drive, reads fine.

Could this be one of those extension do thingies? Like Mac OS Essay Open?
Or Mac Dunk Plus?

I don't know what it would be so any suggestions would be welcome.

LOCAL FN getDesignNames(fromWhere)
  DIM PBlock$
  DIM 63 FName$
  DIM 7 Type$
  DEF BLOCKFILL(@PBlock$,255,0):'                       fill block with zeros
  & @PBlock$+_IoNamePtr,@FName$:'            stuff it into the parameter block
  FileIndex=1:'                                       sets starting search id
  IncludeNum=0:'                              where the file info gets stuffed
  CLEAR INDEX$ _designNdxNames:'            clear the index we are going using
  DO
    % @PBlock$+_IoFDirIndex,FileIndex:'         start looking through the list
    % @PBlock$+_ioVRefNum,designVol:'                this is the volume to use
    OSErr=FN GETFILEINFO(@PBlock$):'         get file information on this file
    FileType&=[@PBlock$+_IoFlUsrWds_FdType]:'     *** File Type ***
    FileDad& =[@PBlock$+_IoFlUsrWds_FdCreator]:'  *** File Creator ***
    LONG IF OSErr=0
      SELECT FileDad&:'               see which program created our file type
        CASE _"PCDA":'                                 was it created by ????
          SELECT FileType&:'                    now we have to check the type
            CASE _"PCS "
              INC(IncludeNum):'                 storing them in the array now
              INDEX$(IncludeNum,_designNdxNames)=FName$:'  store the name now
            CASE _"PCQ "
              INC(IncludeNum):'                 storing them in the array now
              INDEX$(IncludeNum,_designNdxNames)=FName$:'  store the name now
            CASE _"PCD "
              INC(IncludeNum):'                 storing them in the array now
              INDEX$(IncludeNum,_designNdxNames)=FName$:'  store the name now
          END SELECT
      END SELECT
    END IF
    INC(FileIndex)
    amtMem&=MEM(_designNdxNames+_availBytes):'      the amount of memory left
  UNTIL OSErr OR amtMem&<40
END FN = IncludeNum
Mel Patrick - theWabbitGuy - mel@...
mailto:mel@...
http://www.intergate.bc.ca/business/mel