| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 // Read the file in blocks of size 64k. | 7 // Read the file in blocks of size 64k. |
| 8 const int _BLOCK_SIZE = 64 * 1024; | 8 const int _BLOCK_SIZE = 64 * 1024; |
| 9 | 9 |
| 10 | 10 |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 external static _exists(String path); | 241 external static _exists(String path); |
| 242 | 242 |
| 243 bool existsSync() { | 243 bool existsSync() { |
| 244 var result = _exists(path); | 244 var result = _exists(path); |
| 245 throwIfError(result, "Cannot check existence of file", path); | 245 throwIfError(result, "Cannot check existence of file", path); |
| 246 return result; | 246 return result; |
| 247 } | 247 } |
| 248 | 248 |
| 249 File get absolute => new File(_absolutePath); | 249 File get absolute => new File(_absolutePath); |
| 250 | 250 |
| 251 Future<FileStat> stat() => FileStat.stat(path); | |
| 252 | |
| 253 FileStat statSync() => FileStat.statSync(path); | |
| 254 | |
| 255 Future<File> create({bool recursive: false}) { | 251 Future<File> create({bool recursive: false}) { |
| 256 var result = recursive ? parent.create(recursive: true) | 252 var result = recursive ? parent.create(recursive: true) |
| 257 : new Future.value(null); | 253 : new Future.value(null); |
| 258 return result | 254 return result |
| 259 .then((_) => _IOService._dispatch(_FILE_CREATE, [path])) | 255 .then((_) => _IOService._dispatch(_FILE_CREATE, [path])) |
| 260 .then((response) { | 256 .then((response) { |
| 261 if (_isErrorResponse(response)) { | 257 if (_isErrorResponse(response)) { |
| 262 throw _exceptionFromResponse(response, "Cannot create file", path); | 258 throw _exceptionFromResponse(response, "Cannot create file", path); |
| 263 } | 259 } |
| 264 return this; | 260 return this; |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 | 369 |
| 374 | 370 |
| 375 external static _lengthFromPath(String path); | 371 external static _lengthFromPath(String path); |
| 376 | 372 |
| 377 int lengthSync() { | 373 int lengthSync() { |
| 378 var result = _lengthFromPath(path); | 374 var result = _lengthFromPath(path); |
| 379 throwIfError(result, "Cannot retrieve length of file", path); | 375 throwIfError(result, "Cannot retrieve length of file", path); |
| 380 return result; | 376 return result; |
| 381 } | 377 } |
| 382 | 378 |
| 379 Future<DateTime> lastAccessed() { |
| 380 return _IOService._dispatch(_FILE_LAST_ACCESSED, [path]).then((response) { |
| 381 if (_isErrorResponse(response)) { |
| 382 throw _exceptionFromResponse(response, |
| 383 "Cannot retrieve access time", |
| 384 path); |
| 385 } |
| 386 return new DateTime.fromMillisecondsSinceEpoch(response); |
| 387 }); |
| 388 } |
| 389 |
| 390 external static _lastAccessed(String path); |
| 391 |
| 392 DateTime lastAccessedSync() { |
| 393 var ms = _lastAccessed(path); |
| 394 throwIfError(ms, "Cannot retrieve access time", path); |
| 395 return new DateTime.fromMillisecondsSinceEpoch(ms); |
| 396 } |
| 397 |
| 398 Future setLastAccessed(DateTime time) { |
| 399 int millis = time.millisecondsSinceEpoch; |
| 400 return _IOService._dispatch(_FILE_SET_LAST_ACCESSED, [path, millis]) |
| 401 .then((response) { |
| 402 if (_isErrorResponse(response)) { |
| 403 throw _exceptionFromResponse(response, |
| 404 "Cannot set access time", |
| 405 path); |
| 406 } |
| 407 return null; |
| 408 }); |
| 409 } |
| 410 |
| 411 external static _setLastAccessed(String path, int millis); |
| 412 |
| 413 void setLastAccessedSync(DateTime time) { |
| 414 int millis = time.millisecondsSinceEpoch; |
| 415 var result = _setLastAccessed(path, millis); |
| 416 if (result is OSError) { |
| 417 throw new FileSystemException("Failed to set file access time", |
| 418 path, result); |
| 419 } |
| 420 } |
| 421 |
| 383 Future<DateTime> lastModified() { | 422 Future<DateTime> lastModified() { |
| 384 return _IOService._dispatch(_FILE_LAST_MODIFIED, [path]).then((response) { | 423 return _IOService._dispatch(_FILE_LAST_MODIFIED, [path]).then((response) { |
| 385 if (_isErrorResponse(response)) { | 424 if (_isErrorResponse(response)) { |
| 386 throw _exceptionFromResponse(response, | 425 throw _exceptionFromResponse(response, |
| 387 "Cannot retrieve modification time", | 426 "Cannot retrieve modification time", |
| 388 path); | 427 path); |
| 389 } | 428 } |
| 390 return new DateTime.fromMillisecondsSinceEpoch(response); | 429 return new DateTime.fromMillisecondsSinceEpoch(response); |
| 391 }); | 430 }); |
| 392 } | 431 } |
| 393 | 432 |
| 394 external static _lastModified(String path); | 433 external static _lastModified(String path); |
| 395 | 434 |
| 396 DateTime lastModifiedSync() { | 435 DateTime lastModifiedSync() { |
| 397 var ms = _lastModified(path); | 436 var ms = _lastModified(path); |
| 398 throwIfError(ms, "Cannot retrieve modification time", path); | 437 throwIfError(ms, "Cannot retrieve modification time", path); |
| 399 return new DateTime.fromMillisecondsSinceEpoch(ms); | 438 return new DateTime.fromMillisecondsSinceEpoch(ms); |
| 400 } | 439 } |
| 401 | 440 |
| 441 Future setLastModified(DateTime time) { |
| 442 int millis = time.millisecondsSinceEpoch; |
| 443 return _IOService._dispatch(_FILE_SET_LAST_MODIFIED, [path, millis]) |
| 444 .then((response) { |
| 445 if (_isErrorResponse(response)) { |
| 446 throw _exceptionFromResponse(response, |
| 447 "Cannot set modification time", |
| 448 path); |
| 449 } |
| 450 return null; |
| 451 }); |
| 452 } |
| 453 |
| 454 external static _setLastModified(String path, int millis); |
| 455 |
| 456 void setLastModifiedSync(DateTime time) { |
| 457 int millis = time.millisecondsSinceEpoch; |
| 458 var result = _setLastModified(path, millis); |
| 459 if (result is OSError) { |
| 460 throw new FileSystemException("Failed to set file modification time", |
| 461 path, result); |
| 462 } |
| 463 } |
| 464 |
| 402 external static _open(String path, int mode); | 465 external static _open(String path, int mode); |
| 403 | 466 |
| 404 RandomAccessFile openSync({FileMode mode: FileMode.READ}) { | 467 RandomAccessFile openSync({FileMode mode: FileMode.READ}) { |
| 405 if (mode != FileMode.READ && | 468 if (mode != FileMode.READ && |
| 406 mode != FileMode.WRITE && | 469 mode != FileMode.WRITE && |
| 407 mode != FileMode.APPEND && | 470 mode != FileMode.APPEND && |
| 408 mode != FileMode.WRITE_ONLY && | 471 mode != FileMode.WRITE_ONLY && |
| 409 mode != FileMode.WRITE_ONLY_APPEND) { | 472 mode != FileMode.WRITE_ONLY_APPEND) { |
| 410 throw new ArgumentError('Invalid file mode for this operation'); | 473 throw new ArgumentError('Invalid file mode for this operation'); |
| 411 } | 474 } |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1028 void _checkAvailable() { | 1091 void _checkAvailable() { |
| 1029 if (_asyncDispatched) { | 1092 if (_asyncDispatched) { |
| 1030 throw new FileSystemException("An async operation is currently pending", | 1093 throw new FileSystemException("An async operation is currently pending", |
| 1031 path); | 1094 path); |
| 1032 } | 1095 } |
| 1033 if (closed) { | 1096 if (closed) { |
| 1034 throw new FileSystemException("File closed", path); | 1097 throw new FileSystemException("File closed", path); |
| 1035 } | 1098 } |
| 1036 } | 1099 } |
| 1037 } | 1100 } |
| OLD | NEW |