The FindFile code is as follows...
With the volume number changing, does that mean i can't have a database open
for the duration of my application running? do i just need to open and close
the database every time i need to access it?
static FileRef FindFile (UInt16 volRefNum, Char *directory, Char
*theDatabaseName)
{
FileInfoType fileinfo;
FileRef dirRef, fileRef;
UInt32 dirIterator;
UInt16 length;
fileRef = NULL;
if ( VFSFileOpen (volRefNum, directory, vfsModeRead, &dirRef) ==
errNone )
{
StrCopy (pathname, directory);
if ( StrCompare (pathname, "/") != 0 )
StrCat (pathname, "/");
length = StrLen (pathname);
fileinfo.nameP = pathname + length;
fileinfo.nameBufLen = sizeof pathname - length;
dirIterator = vfsIteratorStart;
while ( (dirIterator != vfsIteratorStop) &&
(VFSDirEntryEnumerate (dirRef, &dirIterator, &fileinfo)
== errNone) )
{
if ( fileinfo.attributes & vfsFileAttrDirectory )
fileRef = FindFile (volRefNum, pathname, theDatabaseName);
else if ( StrCaselessCompare (fileinfo.nameP, theDatabaseName) == 0)
VFSFileOpen (volRefNum, pathname, vfsModeRead, &fileRef);
if ( fileRef != NULL )
dirIterator = vfsIteratorStop;
}
VFSFileClose (dirRef);
}
return fileRef;
}
--
For information on using the PalmSource Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/