cross_file 0.3.3+1 icon indicating copy to clipboard operation
cross_file: ^0.3.3+1 copied to clipboard

An abstraction to allow working with files across multiple platforms.

cross_file #

An abstraction to allow working with files across multiple platforms.

Usage #

Import package:cross_file/cross_file.dart, instantiate a XFile using a path or byte array and use its methods and properties to access the file and its metadata.

Example:

import 'package:cross_file/cross_file.dart';

final file = XFile('assets/hello.txt');

print('File information:');
print('- Path: ${file.path}');
print('- Name: ${file.name}');
print('- MIME type: ${file.mimeType}');

final fileContent = await file.readAsString();
print('Content of the file: ${fileContent}');  // e.g. "Moto G (4)"

You will find links to the API docs on the pub page.

Web Limitations #

XFile on the web platform is backed by Blob objects and their URLs.

It seems that Safari hangs when reading Blobs larger than 4GB (your app will stop without returning any data, or throwing an exception).

This package will attempt to throw an Exception before a large file is accessed from Safari (if its size is known beforehand), so that case can be handled programmatically.

Browser compatibility #

Data on Global support for Blob constructing

Data on Global support for Blob URLs

Testing #

This package supports both web and native platforms. Unit tests need to be split in two separate suites (because native code cannot use dart:html, and web code cannot use dart:io).

When adding new features, it is likely that tests need to be added for both the native and web platforms.

Native tests #

Tests for native platforms are located in the x_file_io_test.dart. Tests can be run with dart test.

Web tests #

Tests for the web platform live in the x_file_html_test.dart. They can be run with dart test -p chrome.

104
likes
120
pub points
99%
popularity

Publisher

verified publisher iconflutter.dev

An abstraction to allow working with files across multiple platforms.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Icon for licenses.BSD-3-Clause (LICENSE)

Dependencies

js, meta

More

Packages that depend on cross_file