• copy file


    import io,,,,,,,

    from https://pub.dev/packages/large_file_copy

    Directory directory = await getApplicationDocumentsDirectory();
    var dbPath = join(directory.path, "app.db");
    if (FileSystemEntity.typeSync(dbPath) == FileSystemEntityType.notFound) {
      ByteData data = await rootBundle.load("assets/my_db_file.db");
      List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
      await File(dbPath).writeAsBytes(bytes);
    }

    var file1 = File(join(tempDir.path, '0/2048.apk'));
    var newFile = await file1.copy(join(tempDir.path, '4/1.apk'));


    import 'package:flutter/material.dart';
    import 'dart:io';
    import 'dart:async';
    import 'package:rxdart/rxdart.dart';
    import 'package:path_provider/path_provider.dart';
    import 'package:path/path.dart';
    import 'package:permission_handler/permission_handler.dart';
    import 'package:flutter/services.dart';
    
    void main() => runApp(MaterialApp(home: MyApp(),));
    
    /*
    1. Copy aria2c executable to ``/mnt/sdcard`` on your device.
    2. Run Android Terminal Emulator.
    3. ``mkdir /data/data/jackpal.androidterm/aria2``
    4. ``cat /mnt/sdcard/aria2c > /data/data/jackpal.androidterm/aria2/aria2c``
    5. ``chmod 744 /data/data/jackpal.androidterm/aria2/aria2c``
    6. Add the following commands to the initial command of Android
    Terminal Emulator::
    
    export HOME=/data/data/jackpal.androidterm/aria2; cd $HOME
    
    7. Exit Android Terminal Emulator.
    8. Run Android Terminal Emulator again.
    9. See whether aria2c actually works by invoking ``./aria2c -v``
    */
    
    class MyApp extends StatelessWidget {
      DataBloc bloc;
    
      checkPermission()async{
        var per = await PermissionHandler().checkPermissionStatus(PermissionGroup.storage);
        if(per!=PermissionStatus.granted){
          await PermissionHandler().requestPermissions([PermissionGroup.storage]);
        }
      }
    
      cp()async{
        await checkPermission();
        Directory tempDir = await getExternalStorageDirectory();
        String workDir = join(tempDir.path, '4');
    
    //    var p = await Process.run('mkdir', [workDir]).then((ProcessResult e){
    //      print(e.stderr);
    //      print(e.exitCode);
    //    });
    
        var file1 = await rootBundle.load('assets/aria2c');
        var buf = file1.buffer;
        File(join(workDir, 'xxx')).writeAsBytesSync(buf.asUint8List());
    //    var newFile = await file1.copy(join(tempDir.path, '4/1.apk'));
        print('done');
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text('sss'),),
          body: Container(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                RaisedButton(child: Text('mkdir'),onPressed: (){
                    cp();
                },),
                RaisedButton(child: Text('delete'),onPressed: (){
    
                },),
                Container(
                     50,height: 50,child: Image(image: AssetImage('assets/img/a.png',),fit: BoxFit.cover,)),
    //            Container(
    //                 50, height: 50,child: Text('   '),decoration: BoxDecoration(
    //              image: DecorationImage(image: AssetImage('assets/img/a.png')),
    //            ),),
              ],
            ),
          ),
        );
      }
    }
    
    class DataBloc {
      ReplaySubject dataBloc = ReplaySubject();
    }
    
    //void shell(String cmd, List<String> opts, void onExit(int exitCode))async{
    //  var p = await Process.start(cmd, opts);
    //  p.stdout.pipe(stdout);
    //  stdin.pipe(p.stdin);
    //  p.onExit = (exitCode)async{
    //    await p.kill();
    //    onExit(exitCode);
    //  }
    //}
    
    
    //void shell(String cmd, List<String> opts, void onExit(int exitCode)) {
    //  var p = Process.start(cmd, opts);
    //  p.stdout.pipe(stdout);  // Process output to stdout.
    //  stdin.pipe(p.stdin);    // stdin to process input.
    //  p.onExit = (exitCode) {
    //    p.close();
    //    onExit(exitCode);
    //  };
    //}
    

      

  • 相关阅读:
    [Makefile] 递归编译的Makefile的实现
    python中出现 IndentationError:unindent does not match any outer indentation level
    Python3 编译中文字串报错解决方案
    linux下创建和删除软、硬链接
    免费的编程中文书籍索引
    starUML建立时序图
    UML 学习地址
    使用 Addr2line 将函数地址解析为函数名
    WIFI基本知识整理
    Ubuntu16.04 安装Python3.6 报错
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10894154.html
Copyright © 2020-2023  润新知