C y b e r M a c @ E x M a c h i n a ( M a i l i n g L i s t ) <http://www.cybercafe21.net> & <http://www.cybercafe21.tv>
iSolutions - Francis Vermeire, écrivant depuis [EMAIL PROTECTED], a usé un peu plus son clavier : > C y b e r M a c @ E x M a c h i n a ( M a i l i n g L i s t ) > <http://www.cybercafe21.net> & <http://www.cybercafe21.tv> > >> Tu rigoles ! :-) > > Non, comme tu peux le constater ici (notion de metadata) : > > int main(void) > { > OSStatus outStatus; > FSSpec spec; > FSRef folderRef; > > printf("begin file iteration!\n"); > fflush( stdout ); > > // > // Get the currently running application's parent folder, > // make it into an FSRef, and iterate it > // > outStatus = FSMakeFSSpec( 0, 0, "\p", &spec ); > if( outStatus == noErr ) > { > outStatus = FSpMakeFSRef( &spec, &folderRef ); > if( outStatus == noErr ) > { > outStatus = IterateFolder( &folderRef ); > } > } > > printf( "final error status is (#%d)\n", outStatus ); > return 0; > } > > OSStatus IterateFolder( FSRef * inFolder ) > { > OSStatus outStatus; > > // > // Get permissions and node flags and Finder info > // > // For maximum performance, specify in the catalog > // bitmap only the information you need to know > // > FSCatalogInfoBitmap kCatalogInfoBitmap = ( kFSCatInfoNodeFlags > | kFSCatInfoFinderInfo > ); > > // > // On each iteration of the do-while loop, retrieve this > // number of catalog infos > // > // We use the number of FSCatalogInfos that will fit in > // exactly four VM pages (#113). This is a good balance > // between the iteration I/O overhead and the risk of > // incurring additional I/O from additional memory > // allocation > // > const size_t kRequestCountPerIteration = > ((4096 * 4) / > sizeof(FSCatalogInfo)); > FSIterator iterator; > FSCatalogInfo * catalogInfoArray; > > // > // Create an iterator > // > outStatus = FSOpenIterator( inFolder, kFSIterateFlat, &iterator ); > > if( outStatus == noErr ) > { > // > // Allocate storage for the returned information > // > catalogInfoArray = (FSCatalogInfo *) malloc( sizeof(FSCatalogInfo) > * > kRequestCountPerIteration ); > > if( catalogInfoArray == NULL ) > { > outStatus = memFullErr; > } > else > { > // > // Request information about files in the given directory, > // until we get a status code back from the File Manager > // > do > { > ItemCount actualCount; > > outStatus = FSGetCatalogInfoBulk( iterator, > kRequestCountPerIteration, > &actualCount, > NULL, > kCatalogInfoBitmap, > catalogInfoArray, > NULL, > NULL, > NULL ); > > // > // Process all items received > // > if( outStatus == noErr || outStatus == errFSNoMoreItems ) > { > UInt32 index; > > for( index = 0; index < actualCount; index += 1 ) > { > // > // Do something interesting with the object found > // > DoSomethingWithThisObject( &catalogInfoArray[ > index ] ); > } > } > > > } > while( outStatus == noErr ); > > // > // errFSNoMoreItems tells us we have successfully processed all > // items in the directory -- not really an error > // > if( outStatus == errFSNoMoreItems ) > { > outStatus = noErr; > } > > // > // Free the array memory > // > free( (void *) catalogInfoArray ); > } > } > > return outStatus; > } > > void DoSomethingWithThisObject( const FSCatalogInfo * inCatInfo ) > { > if( (inCatInfo->nodeFlags & kFSNodeIsDirectoryMask) == > kFSNodeIsDirectoryMask ) > { > printf( "Found a folder\n" ); > } > else > { > FInfo * theFinderInfo; > OSType type; > > theFinderInfo = (FInfo *)&inCatInfo->finderInfo[0]; > type = theFinderInfo->fdType; > > printf( "Found a file (type %c%c%c%c)\n", > (char) ((type & 0xFF000000) >> 24), > (char) ((type & 0x00FF0000) >> 16), > (char) ((type & 0x0000FF00) >> 8), > (char) (type & 0x000000FF) > ); > } > } > > > Bonne lecture > > FranciscoSan C'est quoi tout ce charabia ? -- Stephen D'INNOCENZO - Alias ZARVOX ou ZARVOXBE GSM : 0497/31 88 31 - ICQ : 18650695 - [EMAIL PROTECTED] ---------------------------------------------------------------------------- Membre de Clic & Go ! - Groupe d'utilisateurs Apple http://clickandgo.apple.lu ---------------------------------------------------------------------------- Que ceux qui veulent profiter des conditions Salon levent le doigt ! >>> Decouvrez la nouvelle gamme Audi sur http://www.audi.be - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CCMC vous est offert par Emakina <http://www.emakina.com> Pour vous desabonner: <mailto:[EMAIL PROTECTED]>