Example #1
0
/*
 * doDF - do disk info for a specific drive
 */
static void doDF( int drive )
{
    struct diskfree_t   df;
    unsigned long long  cl_bytes;
    long                total;
    long                avail;
    long                used;
    drive_type          dt;

    dt = doGetDriveType( drive );
    if( dt == DRIVE_NONE ) {
        return;
    }
    if( dt == DRIVE_IS_REMOTE && !includeNetwork ) {
        return;
    }
    if( _dos_getdiskfree( toupper( drive ) - 'A' +1, &df ) == 0 ) {
        cl_bytes = (long)df.sectors_per_cluster * (long)df.bytes_per_sector;
        total = (long)df.total_clusters * cl_bytes / 1024L;
        avail = (long)df.avail_clusters * cl_bytes / 1024L;
        used = total-avail;
        printf( " %c   %10ld  %10ld  %10ld    %2d%%\n",
            toupper( drive ), total, used, avail, (100L*used)/total );
    }

} /* doDF */
Example #2
0
long LocalGetFreeSpace( int drv )
/*******************************/
{
    struct diskfree_t   dfre;

    _dos_getdiskfree( drv, &dfre );
    return( dfre.avail_clusters * dfre.sectors_per_cluster * dfre.bytes_per_sector );
}
unsigned long AGSDOS::GetDiskFreeSpaceMB() {
  struct diskfree_t df;
  unsigned long freebytes=0;
  if ( !_dos_getdiskfree(0, &df) ) {
       freebytes = (unsigned long)df.avail_clusters *
                   (unsigned long)df.bytes_per_sector *
                   (unsigned long)df.sectors_per_cluster;
  }

  return freebytes / 1000000;
}
Example #4
0
long K_avail(char *path)
{
  unsigned drive=0;
  if (path[1]==':') drive=toupper(path[0])-'A'+1;
  else _dos_getdrive(&drive);

  struct diskfree_t f;
  _dos_getdiskfree(drive,&f);
  
  return (long)((long)f.sectors_per_cluster*(long)f.bytes_per_sector/1024)*(long)f.avail_clusters;
}
Example #5
0
void main (void)
 {
   struct diskfree_t diskinfo;
   long disk_space;

   if (_dos_getdiskfree(0, &diskinfo))
     printf("Error accessing drive C:\n");
   else
     {
       disk_space = (long) diskinfo.avail_clusters *     
                    (long) diskinfo.bytes_per_sector *
                    (long) diskinfo.sectors_per_cluster;

       printf("Available disk space %ld\n", disk_space);
     }
 }
Boolean driveValid(char drive) {
   drive = toupper(drive);
#ifdef __MSDOS__
   struct diskfree_t df;
   return Boolean(_dos_getdiskfree(drive-'@',&df) == 0);
#elif defined(__OS2__)
   FSALLOCATE a;
   return Boolean(!DosQueryFSInfo(drive - '@', FSIL_ALLOC, &a, sizeof(a)));
#elif defined(__NT__)
   DWORD mask = 0x01 << (drive - 'A');
   return (Boolean)(GetLogicalDrives() & mask);
#elif defined(__QSINIT__)
   return (Boolean)(io_ismounted(drive - 'A', 0));
#else
#error Unknown platform!
#endif
}
Example #7
0
int getDiskSize(unsigned char drive,unsigned long *size,
				    unsigned long *free,
				    unsigned long *clustersize)
{
  struct diskfree_t   	data;

  if(_dos_getdiskfree(drive,&data)==0) {
    *size=(unsigned long)data.total_clusters*data.bytes_per_sector*
	  data.sectors_per_cluster;
    *free=(unsigned long)data.avail_clusters*data.bytes_per_sector*
	  data.sectors_per_cluster;
    *clustersize=(unsigned long)data.bytes_per_sector*
		 data.sectors_per_cluster;
    return 1;
  }
  *size=*free=*clustersize=0;
  return 0;
}
Example #8
0
BOOL FloppySpace (int iFloppyIndex)
{
#ifdef WIN32
#else
    BYTE	Device;
    DWORD 	lSpace = 0;
    struct	diskfree_t DiskFree;

    Device = ((BYTE)szFloppies[iFloppyIndex] - 'A') +1;

    if (Device < 0 || Device > 26)
        return (FALSE);
    if ( _dos_getdiskfree (Device, &DiskFree) )
        return (FALSE);
    lSpace = (DWORD)DiskFree.avail_clusters * DiskFree.sectors_per_cluster *
             DiskFree.bytes_per_sector;
    if (lSpace < MIN_SPACE)
        return (FALSE);

#endif
    return (TRUE);
}
Example #9
0
LPSTR DriveSize(
/************************************************************************/
int 	iDrive,
LPSTR 	lpSize)
{
#ifdef WIN32

#else
char szString[MAX_STR_LEN];
DWORD dwSize;
WORD wType;
struct diskfree_t DiskFree;

wType = GetExtendedDriveType(iDrive);
if ( iDrive != CURRENTDRIVE &&
	(wType == DRIVE_REMOVABLE || wType == DRIVE_CDROM) )
	*lpSize = '\0';
else	{
	if ( !_dos_getdiskfree( iDrive+1, &DiskFree ) )
		{
		dwSize = (DWORD)DiskFree.avail_clusters *
				DiskFree.sectors_per_cluster * 
				DiskFree.bytes_per_sector;
		SizeToAscii( dwSize, szString );
		lstrcpy( lpSize, szString );
		lstrcat( lpSize, " / " );
		dwSize = (DWORD)DiskFree.total_clusters *
				DiskFree.sectors_per_cluster * 
				DiskFree.bytes_per_sector;
		SizeToAscii( dwSize, szString );
		lstrcat( lpSize, szString );
		}
	}
	
#endif
return( lpSize );
}
Example #10
0
unsigned _RTL_FUNC _getdiskfree(unsigned __drive,struct _diskfree_t *__dtable)
{
    return _dos_getdiskfree( __drive, __dtable);
}