WebExeBuilder Documentation

fileSize

Category: File Operations

Namespace: web.files.fileSize

Description

Gets the size of a file in bytes.

Syntax

const size = await web.files.fileSize({
    filePath: 'path/to/file.txt'
});

Parameters

  • filePath (required) - Path to the file (relative or absolute)

Returns

Promise<number> - Returns a promise that resolves with the file size in bytes, or -1 if the file doesn't exist or an error occurs

Examples

Simple example

const size = await web.files.fileSize({
    filePath: 'document.pdf'
});

if (size >= 0) {
    console.log('File size:', size, 'bytes');
} else {
    console.log('File not found');
}

Format file size

const size = await web.files.fileSize({
    filePath: 'video.mp4'
});

function formatBytes(bytes) {
    if (bytes < 1024) return bytes + ' B';
    if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
    if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
    return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
}

console.log('File size:', formatBytes(size));

Check file size before upload

const maxSize = 10 * 1024 * 1024; // 10 MB
const size = await web.files.fileSize({
    filePath: 'upload.zip'
});

if (size > maxSize) {
    alert('File is too large. Maximum size is 10 MB.');
} else if (size >= 0) {
    // Proceed with upload
    console.log('File size OK');
}

Use Cases

  • Check file size before uploading
  • Display file size to users
  • Validate file sizes against limits
  • Calculate total size of multiple files
  • Monitor disk space usage

Notes

  • Returns -1 if the file doesn't exist
  • Returns -1 if an error occurs
  • Size is returned in bytes (use conversion for KB/MB/GB)
  • Relative paths are resolved from the application executable directory
  • For large files (>2GB), the value is still accurate (uses Int64)