Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Io 以字节形式读取目录_Io_Dart - Fatal编程技术网

Io 以字节形式读取目录

Io 以字节形式读取目录,io,dart,Io,Dart,我正在尝试使用构建一个归档文件,我需要归档整个目录 到目前为止,我可以通过执行以下操作来归档单个文件: io.File File=new io.File(pathToMyFile); List bytes=wait file.readAsBytes(); io.FileStat stats=wait file.stat(); 存档=新存档(); addFile(新的ArchiveFile.noCompress('config.yaml',stats.size,bytes) ..模式=统计模式 .

我正在尝试使用构建一个归档文件,我需要归档整个目录

到目前为止,我可以通过执行以下操作来归档单个文件:

io.File File=new io.File(pathToMyFile);
List bytes=wait file.readAsBytes();
io.FileStat stats=wait file.stat();
存档=新存档();
addFile(新的ArchiveFile.noCompress('config.yaml',stats.size,bytes)
..模式=统计模式
..lastModTime=stats.modified.millis秒);
List data=new ZipEncoder().encode(存档,级别:Deflate.NO_压缩);
等待新的io.File('output.war')。writeAsBytes(数据,flush:true);
但是要创建一个
ArchiveFile
我需要表示文件的字节,但是我觉得将整个目录作为字节来完成这项工作会很好。有办法做到这一点吗?看起来Dart API的应用非常有限


一个人通常如何去复制一个目录?只需呼叫系统
cp
?我的意思是,我想得到一个能在多个平台上工作的解决方案。

你可以一个文件一个文件递归地完成。Grinder有一项任务,请看一下实现

您可以使用

var文件列表=
新建io.Directory(path.join(io.Directory.current.absolute.path,'lib'))
.list(递归:true,followLinks:false);

然后处理一个又一个文件。

出于好奇,您是否尝试过在存档中创建目录?(或者您是否会使用
存档
包来创建未压缩的存档文件?)不,我不知道存档包。它似乎不支持像目录这样的东西。也许您可以添加一个相对路径为
somedir/somesubdir/somefile.xxx
的文件,或者用名称对路径进行编码。目录是“虚拟”的,没有显式添加。只需添加文件名及其相对路径。