- Update the pubspec repository field to reflect the new package repository.
- Dart 3 fixes for class modifiers.
- Require Dart 3.0.
MemoryFileSystem
now treats empty paths as non-existent.- Fix
FileSystem.isLink
/FileSystem.isLinkSync
to not follow symbolic links. - Make the return type of
MemoryFile.openRead
and_ChrootFile.openRead
again match the return type fromdart:io
.
- Populate the pubspec
repository
field.
- In classes that implement
File
methodscreate
,createSync
now takebool exclusive = true
parameter. No functional changes.
MemoryFileSystem
now providesopHandle
s for exists operations.
MemoryFile
now providesopHandle
s for copy and open operations.
- Reading invalid UTF8 with the
MemoryFileSystem
now correctly throws aFileSystemException
instead of aFormatError
. MemoryFileSystem
now provides anopHandle
to inspect read/write operations.MemoryFileSystem
now creates the temporary directory before returning increateTemp
/createTempSync
.
- Fix sound type error in memory backend when reading non-existent
MemoryDirectory
.
- First stable null safe release.
- Update upper bound of SDK constraint.
- Update upper bound of SDK constraint.
- Make
ForwardingFile.openRead
's return type again match the return type fromdart:io
. - Remove some unnecessary
Uint8List
conversions inForwardingFile
.
- Update to null safety.
- Remove record/replay functionality.
- Made
MemoryRandomAccessFile
andMemoryFile.openWrite
handle the file being removed or renamed while open. - Fixed incorrect formatting in
NoMatchingInvocationError.toString()
. - Fixed more test flakiness.
- Enabled more tests.
- Internal cleanup.
- Remove implicit dynamic in preparation for null safety.
- Remove dependency on Intl.
- systemTemp directories created by
MemoryFileSystem
will allot names based on the file system instance instead of globally. MemoryFile.readAsLines()
/readAsLinesSync()
no longer treat a final newline in the file as the start of a new, empty line.RecordingFile.readAsLine()
/readAsLinesSync()
now always record a final newline.MemoryFile.flush()
now returnsFuture<void>
instead ofFuture<dynamic>
.- Fixed some test flakiness.
- Enabled more tests.
- Internal cleanup.
- Added a
MemoryRandomAccessFile
class and implementedMemoryFile.open()
/openSync()
.
- Added a new
MemoryFileSystem
constructor to use a test clock
- Added example
- Fix lints for project health
- Return
Uint8List
rather thanList<int>
.
- Dart 2 fixes for
RecordingProxyMixin
andReplayProxyMixin
.
- Dart 2 fixes for
RecordingFile.open()
- Dart 2 fixes
- Update SDK constraint to 2.0.0-dev.67.0, remove workaround in recording_proxy_mixin.dart.
- Fix usage within Dart 2 runtime mode in Dart 2.0.0-dev.61.0 and later.
- Relax constraints on
package:test
- Update
package:test
dependency to 1.0
- Declare compatibility with Dart 2 stable
- Remove upper case constants
- Update SDK constraint to 2.0.0-dev.54.0.
- Moved
testing
library into a dedicatedpackage:file_testing
so that libraries don't need to take on a transitive dependency onpackage:test
in order to usepackage:file
.
- General library cleanup
- Add
style
support inMemoryFileSystem
, so that callers can choose to have a memory file system with windows-like paths. [#68] (https://github.com/google/file.dart/issues/68)
- Change method signature for
RecordingRandomAccessFile._close
to return aFuture<void>
instead ofFuture<RandomAccessFile>
. This follows a change in dart:io, Dart SDK2.0.0-dev.40
.
- Import
dart:io
unconditionally. More recent Dart SDK revisions allowdart:io
to be imported in a browser context, though if methods are actually invoked, they will fail. This matches well withpackage:file
, where users can use thememory
library and get in-memory implementations of thedart:io
interfaces. - Bump minimum Dart SDK to
1.24.0
- Fix Dart 2 error.
- Relax sdk upper bound constraint to '<2.0.0' to allow 'edge' dart sdk use.
- Fix internal use of a cast which fails on Dart 2.0 .
- Bumped maximum Dart SDK version to 2.0.0-dev.infinity
- Relaxes version requirements on
package:intl
- Fixed
FileSystem.directory(Uri)
,FileSystem.file(Uri)
, andFileSystem.link(Uri)
to consult the file system's path context when converting the URI to a file path rather than usingUri.toFilePath()
.
- Fixed
MemoryFileSystem
to makeFile.writeAs...()
update the last modified time of the file.
- Added the following convenience methods in
Directory
:Directory.childDirectory(String basename)
Directory.childFile(String basename)
Directory.childLink(String basename)
- Added
ErrorCodes
class, which holds errno values.
- Add support for new
dart:io
API methods added in Dart SDK 1.23
- Minor doc updates
- Improved
toString
implementations in file system entity classes - Added
ForwardingFileSystem
and associated forwarding classes to the mainfile
library - Removed
FileSystem.pathSeparator
, and added a more comprehensiveFileSystem.path
property - Added
FileSystemEntity.basename
andFileSystemEntity.dirname
- Added the
record_replay
library - Added the
testing
library
- Added
FileSystem.systemTempDirectory
- Added the ability to pass
Uri
andFileSystemEntity
types toFileSystem.directory()
,FileSystem.file()
, andFileSystem.link()
- Added
FileSystem.pathSeparator
- Unified interface to match dart:io API
- Local file system implementation
- In-memory file system implementation
- Chroot file system implementation
- Initial version