Ejemplo n.º 1
0
   void __nt_finddata_cvt( WIN32_FIND_DATA *ffb, struct _finddata_t *fileinfo )
  #endif
 #endif
/******************************************************************************/
{
    WORD        d;
    WORD        t;

    /*** Convert attributes ***/
    fileinfo->attrib = 0;
    if( ffb->dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE ) {
        fileinfo->attrib |= _A_ARCH;
    }
    if( ffb->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) {
        fileinfo->attrib |= _A_SUBDIR;
    }
    if( ffb->dwFileAttributes & FILE_ATTRIBUTE_HIDDEN ) {
        fileinfo->attrib |= _A_HIDDEN;
    }
    if( ffb->dwFileAttributes & FILE_ATTRIBUTE_NORMAL ) {
        fileinfo->attrib |= _A_NORMAL;
    }
    if( ffb->dwFileAttributes & FILE_ATTRIBUTE_READONLY ) {
        fileinfo->attrib |= _A_RDONLY;
    }
    if( ffb->dwFileAttributes & FILE_ATTRIBUTE_SYSTEM ) {
        fileinfo->attrib |= _A_SYSTEM;
    }

    /*** Handle the timestamps ***/
    __MakeDOSDT( &ffb->ftCreationTime, &d, &t );
    fileinfo->time_create = _d2ttime( d, t );
    __MakeDOSDT( &ffb->ftLastAccessTime, &d, &t );
    fileinfo->time_access = _d2ttime( d, t );
    __MakeDOSDT( &ffb->ftLastWriteTime, &d, &t );
    fileinfo->time_write = _d2ttime( d, t );

    /*** Handle the file size ***/
  #ifdef __INT64__
    U64Set( (unsigned_64 *)&fileinfo->size, ffb->nFileSizeLow, ffb->nFileSizeHigh );
  #else
    fileinfo->size = ffb->nFileSizeLow;
  #endif

    /*** Handle the file name ***/
    __F_NAME(strcpy,wcscpy)( fileinfo->name, ffb->cFileName );
}
Ejemplo n.º 2
0
void __GetNTDirInfo(DIR_TYPE *dirp, LPWIN32_FIND_DATA ffb )
{
    __MakeDOSDT( &ffb->ftLastWriteTime, &dirp->d_date, &dirp->d_time );
    dirp->d_attr = ffb->dwFileAttributes;
    dirp->d_size = ffb->nFileSizeLow;
    __F_NAME(strncpy,wcsncpy)( dirp->d_name, ffb->cFileName, NAME_MAX );
    dirp->d_name[NAME_MAX] = 0;
}
Ejemplo n.º 3
0
void __F_NAME(__GetNTDirInfo,__wGetNTDirInfo)(DIR_TYPE *dirp, LPWIN32_FIND_DATA ffb )
{
    __MakeDOSDT( &ffb->ftLastWriteTime, &dirp->d_date, &dirp->d_time );
    dirp->d_attr = ffb->dwFileAttributes;
    dirp->d_size = ffb->nFileSizeLow;
    #ifndef __WIDECHAR__
        strncpy( dirp->d_name, ffb->cFileName, NAME_MAX );
    #else
        wcsncpy( dirp->d_name, ffb->cFileName, NAME_MAX );
    #endif
    dirp->d_name[NAME_MAX] = 0;
}
Ejemplo n.º 4
0
_WCRTLINK unsigned _dos_getftime( int hid, unsigned *date, unsigned *time )
{
    FILETIME        ctime, atime, wtime;
    unsigned short  d, t;

    if( GetFileTime( __getOSHandle( hid ), &ctime, &atime, &wtime ) ) {
        __MakeDOSDT( &wtime, &d, &t );
        *date = d;
        *time = t;
        return( 0 );
    }
    return( __set_errno_nt_reterr() );
}