level 1
caokun_8341
楼主
各位大侠,本人在delphi里安装了一个zipMaster控件,用他来制作zip文件,遇到一个问题,如果我想往zip文件里添加一个空文件夹或已有一个文件的文件夹:比如这个文件夹的名字叫做"test",先不管test下面有没有文件,这个文件夹在PC里的路径是:D:\myepub\books\test
添加的时候会把整个目录一块添加进去,也就是最终的结果是把myepub这个文件夹全添加进去了,但我想要的结果是只添加test文件夹,我改怎么办呢,以下是我的代码:
path:=ExtractFilePath(ParamStr(0));
BookName := trim(self.EditBookName.Text);
if(directoryexists(path+'\books\'+BookName)) then
begin
showmessage('相同的书名已存在,请改用其它书名!');
exit;
end;
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+'\books\'+BookName),nil);
forcedirectories(path+'\books\'+BookName+'\OPS');
forcedirectories(path+'\books\'+BookName+'\META-INF');
forcedirectories(path+'\books\'+BookName+'\OPS\images');
forcedirectories(path+'\books\'+BookName+'\OPS\css'); subFile := TStringList.Create;
subFile.add(path+'\books\mimetype');
subFile.add(path+'\books\'+BookName+'\OPS\*.*');
subFile.add(path+'\books\'+BookName+'\META-INF\*.*');
subFile.add(path+'\books\'+BookName+'\OPS\images\*.*');
subFile.add(path+'\books\'+BookName+'\OPS\css\*.*');
if picPath = '' then
begin
showmessage('您还没有选择封面图片!');
exit;
end;
containerPath := path+'\books\container.xml';
copyfile(pchar(picPath), pchar(path+'\books\'+BookName+'\OPS\images\cover.jpg'),false);
copyfile(pchar(containerPath), pchar(path+'\books\'+BookName+'\META-INF\container.xml'),false);
Author := trim(self.EditAuthor.Text);
self.ZipMaster1.ZipFileName := path+'\books\'+BookName+'.zip';
self.ZipMaster1.AddOptions := [AddDirNames]+[AddSeparateDirs];
self.ZipMaster1.FSpecArgs.Clear;
self.ZipMaster1.FSpecArgs.Assign(subFile);
self.ZipMaster1.Add;
ShowMessage('新建图书 '+BookName+' 成功,请编辑章节和内容,最后生成epub文件!'); Except
ShowMessage('生成 '+BookName+'.zip 文件失败!');
End;
请高手指教,在下不胜感激,定当酬谢!
2012年01月13日 06点01分
1
添加的时候会把整个目录一块添加进去,也就是最终的结果是把myepub这个文件夹全添加进去了,但我想要的结果是只添加test文件夹,我改怎么办呢,以下是我的代码:
path:=ExtractFilePath(ParamStr(0));
BookName := trim(self.EditBookName.Text);
if(directoryexists(path+'\books\'+BookName)) then
begin
showmessage('相同的书名已存在,请改用其它书名!');
exit;
end;
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+'\books\'+BookName),nil);
forcedirectories(path+'\books\'+BookName+'\OPS');
forcedirectories(path+'\books\'+BookName+'\META-INF');
forcedirectories(path+'\books\'+BookName+'\OPS\images');
forcedirectories(path+'\books\'+BookName+'\OPS\css'); subFile := TStringList.Create;
subFile.add(path+'\books\mimetype');
subFile.add(path+'\books\'+BookName+'\OPS\*.*');
subFile.add(path+'\books\'+BookName+'\META-INF\*.*');
subFile.add(path+'\books\'+BookName+'\OPS\images\*.*');
subFile.add(path+'\books\'+BookName+'\OPS\css\*.*');
if picPath = '' then
begin
showmessage('您还没有选择封面图片!');
exit;
end;
containerPath := path+'\books\container.xml';
copyfile(pchar(picPath), pchar(path+'\books\'+BookName+'\OPS\images\cover.jpg'),false);
copyfile(pchar(containerPath), pchar(path+'\books\'+BookName+'\META-INF\container.xml'),false);
Author := trim(self.EditAuthor.Text);
self.ZipMaster1.ZipFileName := path+'\books\'+BookName+'.zip';
self.ZipMaster1.AddOptions := [AddDirNames]+[AddSeparateDirs];
self.ZipMaster1.FSpecArgs.Clear;
self.ZipMaster1.FSpecArgs.Assign(subFile);
self.ZipMaster1.Add;
ShowMessage('新建图书 '+BookName+' 成功,请编辑章节和内容,最后生成epub文件!'); Except
ShowMessage('生成 '+BookName+'.zip 文件失败!');
End;
请高手指教,在下不胜感激,定当酬谢!