# runZoned<R> method

R runZoned <R>(R body(), { Directory createDirectory(String), Directory getCurrentDirectory(), void setCurrentDirectory(String), Directory getSystemTempDirectory(), File createFile(String), Future<FileStat> stat(String), FileStat statSync(String), Future<bool> fseIdentical(String, String), bool fseIdenticalSync(String, String), Future<FileSystemEntityType> fseGetType(String, bool), FileSystemEntityType fseGetTypeSync(String, bool), Stream<FileSystemEvent> fsWatch(String, int, bool), bool fsWatchIsSupported(), Link createLink(String), Future<Socket> socketConnect(dynamic, int, { dynamic sourceAddress, Duration timeout }), Future<ConnectionTask<Socket>> socketStartConnect(dynamic, int, { dynamic sourceAddress }), ZoneSpecification zoneSpecification, Function onError })

Runs `body` in a fresh Zone using the provided overrides.

See the documentation on the corresponding methods of IOOverrides for information about what the optional arguments do.

## Implementation

    static R runZoned<R>(R body(),
        {
        // Directory
        Directory Function(String) createDirectory,
        Directory Function() getCurrentDirectory,
        void Function(String) setCurrentDirectory,
        Directory Function() getSystemTempDirectory,

        // File
        File Function(String) createFile,

        // FileStat
        Future<FileStat> Function(String) stat,
        FileStat Function(String) statSync,

        // FileSystemEntity
        Future<bool> Function(String, String) fseIdentical,
        bool Function(String, String) fseIdenticalSync,
        Future<FileSystemEntityType> Function(String, bool) fseGetType,
        FileSystemEntityType Function(String, bool) fseGetTypeSync,

        // _FileSystemWatcher
        Stream<FileSystemEvent> Function(String, int, bool) fsWatch,
        bool Function() fsWatchIsSupported,

        // Link
        Link Function(String) createLink,

        // Socket
        Future<Socket> Function(dynamic, int,
                {dynamic sourceAddress, Duration timeout})
            socketConnect,
        Future<ConnectionTask<Socket>> Function(dynamic, int,
                {dynamic sourceAddress})
            socketStartConnect,

        // Optional Zone parameters
        ZoneSpecification zoneSpecification,
        Function onError}) {
      IOOverrides overrides = new _IOOverridesScope(
        // Directory
        createDirectory,
        getCurrentDirectory,
        setCurrentDirectory,
        getSystemTempDirectory,

        // File
        createFile,

        // FileStat
        stat,
        statSync,

        // FileSystemEntity
        fseIdentical,
        fseIdenticalSync,
        fseGetType,
        fseGetTypeSync,

        // _FileSystemWatcher
        fsWatch,
        fsWatchIsSupported,

        // Link
        createLink,

        // Socket
        socketConnect,
        socketStartConnect,
      );
      return _asyncRunZoned<R>(body,
          zoneValues: {_ioOverridesToken: overrides},
          zoneSpecification: zoneSpecification,
          onError: onError);
    }