added disk space

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2001-08-25 20:13:57 +00:00
parent 2b9bdf7146
commit 518af45bee
2 changed files with 74 additions and 0 deletions

View File

@@ -27,6 +27,9 @@
#include <string.h>
#include <stdarg.h>
#include "morefile.h"
#include "moreextr.h"
#ifndef __DARWIN__
// defined in unix/utilsunx.cpp for Mac OS X
@@ -344,6 +347,40 @@ char *wxGetUserHome (const wxString& user)
}
#endif
bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
{
if ( path.empty() )
return FALSE;
wxString p = path ;
if (p[0] == ':' ) {
p = wxGetCwd() + p ;
}
int pos = p.Find(':') ;
if ( pos != wxNOT_FOUND ) {
p = p.Mid(1,pos) ;
}
p = p + ":" ;
Str255 volumeName ;
XVolumeParam pb ;
wxMacStringToPascal( p , volumeName ) ;
OSErr err = XGetVolumeInfoNoName( volumeName , 0 , &pb ) ;
if ( err == noErr ) {
if ( pTotal ) {
(*pTotal) = wxLongLong( pb.ioVTotalBytes ) ;
}
if ( pFree ) {
(*pFree) = wxLongLong( pb.ioVFreeBytes ) ;
}
}
return err == noErr ;
}
// Check whether this window wants to process messages, e.g. Stop button
// in long calculations.
bool wxCheckForInterrupt(wxWindow *wnd)