标签: zipstream

无法从一个迭代器类型转换为另一个迭代器类型,但两者完全相同

我正在尝试编译ZipStream库,它是effectivley的一个用于zlib的C++包装器.

现在我正处于这两行的两个编译错误的位置:

std::set<file_info_32*, sort_by_offset>::iterator first  = _core->_entries_by_name.begin();
std::set<file_info_32*, sort_by_offset>::iterator last   = _core->_entries_by_name.end();
Run Code Online (Sandbox Code Playgroud)

错误是:

错误15错误C2440 :: 'initializing'无法转换
'std::_Tree_const_iterator<_Mytree>'
'std::_Tree_const_iterator<_Mytree>' c:\ users\ahakeem\desktop\zipstream\ziparchive.cpp 423 1 zipstream
错误16错误C2440 :: 'initializing'无法转换
'std::_Tree_const_iterator<_Mytree>'
'std::_Tree_const_iterator<_Mytree>' c:\ users\ahakeem\desktop\zipstream\ziparchive. cpp 424 1 zipstream

所以基本上编译器说它无法转换'std::_Tree_const_iterator<_Mytree>''std::_Tree_const_iterator<_Mytree>'

任何想法为什么会发生以及如何解决?

编辑:在进一步调查之后,我发现它_core->entries_by_name.begin()被声明为'std::set<file_info_32*, sort_by_offset>',这显然与迭代器试图分配给(std::set<file_info_32*, sort_by_offset>)的内容不一致.

将其切换为_core->_entries_by_offset.begin();有效,因为它_entries_by_offset是与受让人期望获得的类型一致的类型.

这是否意味着有人可能破坏了代码,没有意识到并将其上传到源代码库?或者,这种错误分配的场景是否真的可以在某些系统上编译?

c++ iterator visual-studio-2010 zipstream

8
推荐指数
1
解决办法
1848
查看次数

nodejs 将数据附加到读取流的末尾

我想读取一个 .txt 文件,将数据附加到最后,最后将其发送到 zipstream。现在我正在做的是编写一个新文件,然后将新文件用于 zipstream,但我想即时完成,而不会创建不必要的新文件。

我的问题是如何创建一个读取流,修改它并发送到另一个读取流(可能中间有一个写入流)。

这可能吗?

最初的想法是这个,但我在中间的某个地方迷路了:

var zipstream = require('zipstream');
var Stream = require('stream');

var zipOut = fs.createWriteStream('file.zip');
var zip = zipstream.createZip({ level : 1 });
zip.pipe(zipOut);

var rs = fs.createReadStream('file.txt');
var newRs = new Stream(); // << Here should be an in/out stream??
newRs.pipe = function(dest) {
  dest.write(rs.read());
  dest.write("New text at the end");
};
zip.addEntry(newRs, {name : 'file.txt'}, function() {
  zip.finalize();
});
Run Code Online (Sandbox Code Playgroud)

pipe stream node.js zipstream

6
推荐指数
1
解决办法
1150
查看次数

从文件夹创建zip存档并使用Node.js保留结构

我正在尝试使用Node.js从现有文件夹创建一个zip文件,并保留结构.

我希望有一个简单的模块允许这样的事情:

archiver.create("../folder", function(zipFile){ 
    console.log('et viola');
});
Run Code Online (Sandbox Code Playgroud)

但我找不到那种东西!

我一直在谷歌搜索,到目前为止我发现的最好的是zipstream,但据我所知,没有办法做我想要的.我真的不想调用命令行实用程序,因为该应用程序必须是跨平台的.

任何帮助将不胜感激.

谢谢.

javascript node.js zipstream

5
推荐指数
1
解决办法
7815
查看次数