New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

diskfree

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

diskfree

Gets space available on a disk/directory. Node c++ extension that uses statvfs and GetFreeDriveSpaceEx, and provides proper errorcodes

latest
Source
npmnpm
Version
1.2.0
Version published
Weekly downloads
27
68.75%
Maintainers
1
Weekly downloads
 
Created
Source

node-diskfree

This implements a shared interface to the unix-like and windows disk space readers. It is implemented in C++ using the Node Addons API

Unix runs on the statvfs systemcall Windows runs on the GetDiskFreeSpaceEx systemcall

This utility will return the correct error number from the respective systemcall.

Installation

Install with npm

npm install disk-space

Install Locally

npm install Saevon/node-diskfree.git --save

Usage

var diskfree = require('diskfree');
diskfree.check('C:', function onDiskInfo(error, info) {
    if (error) {
        // You can see if its a known error
        if (diskfree.isErrBadPath(err)) {
            throw new Error('Path is Wrong');
        } else if (diskfree.isErrDenied(error)) {
            throw new Error('Permission Denied');
        } else if (diskfree.isErrIO(error)) {
            throw new Error('IO Error');
        }

        throw new Error('Unknown error: ' + error);
    }

    info.free == "Free Space";
    info.available == "User Available Space";
    info.total == "Total Space":
    info.used == "Used Space";
    info.locked == "OS locked";
});

diskfree.check(diskPath, callback):

Grabs disk space information

Arguments

NameTypeDescription
diskPathStringDirectory to check
callbackfunctioncallback(error, diskInfo)
diskInfo

All space values are in bytes. If the value exceeds the maximum size of a double 0xFFFF FFFF FFFF F800 then this returns Infinity

NameTypeDescription
freeNumberFree space
availableNumberUser Available free space
usedNumberUsed space
totalNumberTotal space
lockedNumberOS locked Space (Unavailable to user)
error

Error will be undefined if the operation succeeds, otherwise check the system error list to find the problem.

Note that your specific system will might have its own error codes

Windows System Error Codes Unix-Like errno.h

diskfree.isErrBadPath(error):

Returns true if the errorcode is one of the windows/unix errorcodes that indicate the path was wrong.

Note: this might only identify some pathing errors.

diskfree.isErrDenied(error):

Returns true if the errorcode is one of the windows/unix errorcodes that indicate permission was denied

Note: this might only identify some permission errors.

diskfree.isErrIO(error):

Returns true if the errorcode is one of the windows/unix errorcodes that indicate there was an io error

Note: this might only identify some IO errors.

Testing

To test just the base C code, run the test.exe

make test-c

To run the node test

make test-js

Compiling

To compile just the C code run the following

make

Reminder: You need make on windows, in MingW you need to adds it binary path /c/MingW/bin/mingw32-make.exe

License

license

Keywords

disk

FAQs

Package last updated on 26 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts