Open Search

    About

    The BrowseVolumes class provides means to iterate through the volumes/drives mounted in the system.

    Using the BrowseVolumes class always follows the same concept:

    // This example demonstrates browsing volumes with BrowseVolumes.
    AutoAlloc<BrowseVolumes> browseVolumes;
    if (browseVolumes == nullptr)
    return maxon::OutOfMemoryError(MAXON_SOURCE_LOCATION);
    browseVolumes->Init();
    ApplicationOutput("Available volumes:"_s);
    while (browseVolumes->GetNext()) // Note: GetNext() needs to be called at least once, to get the first element.
    {
    const Filename fn = browseVolumes->GetFilename();
    Int32 bvFlags = 0;
    const maxon::String volumeName = browseVolumes->GetVolumeName(&bvFlags);
    {
    UInt64 freecaller = 0, total = 0, freespace = 0;
    maxon::String freeText = ""_s;
    if (GeFGetDiskFreeSpace(fn, freecaller, total, freespace))
    {
    const maxon::String memoryFree = maxon::String::MemorySizeToString(freespace);
    const maxon::String memoryTotal = maxon::String::MemorySizeToString(total);
    const maxon::String memoryFreeForC4D = maxon::String::MemorySizeToString(freecaller);
    freeText = ": "_s + memoryFree + " of "_s + memoryTotal + " free, ("_s + memoryFreeForC4D + " available for C4D)"_s;
    }
    ApplicationOutput(" @ (@)@"_s, maxon::String { fn.GetString() }, volumeName, freeText);
    }
    }
    Definition: ge_autoptr.h:37
    Manages file and path names.
    Definition: c4d_file.h:94
    String GetString() const
    Definition: string.h:1235
    maxon::UInt64 UInt64
    Definition: ge_sys_math.h:63
    maxon::Int32 Int32
    Definition: ge_sys_math.h:60
    #define BROWSEVOLUMES_VOLUME_NOT_AVAILABLE
    Volume not available.
    Definition: c4d_file.h:1021
    #define MAXON_SOURCE_LOCATION
    Definition: memoryallocationbase.h:67
    #define ApplicationOutput(formatString,...)
    Definition: debugdiagnostics.h:210
    Bool GeFGetDiskFreeSpace(const Filename &vol, UInt64 &freecaller, UInt64 &total, UInt64 &freespace)

    Allocation/Deallocation

    BrowseVolumes objects are created with the usual tools, see Entity Creation and Destruction Manual (Classic).

    Use

    Browsing

    Volume Info

    Further Reading