File.hx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package asys.io;
  2. import haxe.io.Bytes;
  3. import haxe.io.Encoding;
  4. class File {
  5. extern function get_async():AsyncFile;
  6. public var async(get, never):AsyncFile;
  7. extern public function chmod(mode:FilePermissions):Void;
  8. extern public function chown(uid:Int, gid:Int):Void;
  9. extern public function close():Void;
  10. extern public function datasync():Void;
  11. extern public function readBuffer(buffer:Bytes, offset:Int, length:Int, position:Int):{bytesRead:Int, buffer:Bytes};
  12. public function readFile():Bytes {
  13. var buffer = Bytes.alloc(stat().size);
  14. readBuffer(buffer, 0, buffer.length, 0);
  15. return buffer;
  16. }
  17. extern public function stat():eval.uv.Stat;
  18. extern public function sync():Void;
  19. extern public function truncate(?len:Int = 0):Void;
  20. extern function utimes_native(atime:Float, mtime:Float):Void;
  21. public function utimes(atime:Date, mtime:Date):Void {
  22. utimes_native(atime.getTime() / 1000, mtime.getTime() / 1000);
  23. }
  24. extern public function writeBuffer(buffer:Bytes, offset:Int, length:Int, position:Int):{bytesWritten:Int, buffer:Bytes};
  25. public function writeString(str:String, ?position:Int, ?encoding:Encoding):{bytesWritten:Int, buffer:Bytes} {
  26. var buffer = Bytes.ofString(str, encoding);
  27. return writeBuffer(buffer, 0, buffer.length, position);
  28. }
  29. }