Beispiel #1
0
/* ****************************************************************************
 * void dir_createDefaultEntry(FileSystem *fs,FileRecord *filerec,eint8* fatfilename)
 * Description: This function fills in a filerecord with safe default values, and
 * a given fatfilename. If your system has a means of knowing time, here is an
 * excellent place to apply it to the filerecord.
 * Return value: void
*/
void dir_createDefaultEntry(FileSystem *fs,FileRecord *filerec,eint8* fatfilename)
{
    memCpy(fatfilename,filerec->FileName,11);
    filerec->Attribute=0x00;
    filerec->NTReserved=0x00;
    filerec->MilliSecTimeStamp=0x00;
    filerec->CreatedTime=time_getTime();
    filerec->CreatedDate=time_getDate();
    filerec->AccessDate=filerec->CreatedDate;
    filerec->FirstClusterHigh=0x0000;
    filerec->WriteTime=filerec->CreatedTime;
    filerec->WriteDate=filerec->CreatedDate;
    filerec->FirstClusterLow=0x0000;
    filerec->FileSize=0x00000000;
}
Beispiel #2
0
/* ****************************************************************************  
 * esint8 file_fclose(File *file)
 * Description: This function closes a file, by clearing the object.
 * Return value: 0 on success.
*/
esint8 file_fclose(File *file)
{
	if(fs_hasTimeSupport()){
		file->DirEntry.AccessDate = time_getDate();
		if(file_getAttr(file,FILE_STATUS_WRITE)){
			file->DirEntry.FileSize = file->FileSize;
			file->DirEntry.WriteDate = file->DirEntry.AccessDate;
			file->DirEntry.WriteTime = time_getTime();
		}
		dir_updateDirectoryEntry(file->fs,&(file->DirEntry),&(file->Location));
	}else{
		if(file_getAttr(file,FILE_STATUS_WRITE)){
			dir_setFileSize(file->fs,&(file->Location),file->FileSize);
		}
	}
	
	memClr(file,sizeof(*file));
	file_setAttr(file,FILE_STATUS_OPEN,0);
	file_setAttr(file,FILE_STATUS_WRITE,0);
	return(0);
}