解压后的文件含有文件夹名,请问如何存盘?(100分)

L

lah998

Unregistered / Unconfirmed
GUEST, unregistred user!
解压后的文件含有文件夹名,请问如何存盘?
我压缩了一个文件夹的所有文件,变成一个压缩文件,然后解压这个压缩文件,遇到这个问题:
我解压一批文件,每个文件都含有文件夹名,如“aaa/bbb/ccc.txt”,“aaa/bbb/dd/qqq.txt”等一系列。
这一批文件如何存在“aaa”这个文件夹里,开始这个硬盘上没有这些文件夹名,
问题就是如何建立这些文件夹名,因为文件夹名里含有子文件夹名!
 
我没理解你的意思··
 
创建文件夹后将文件写入即可。
 
不可能,“aaa/bbb/dd/qqq.txt”这样的文件名是非法的,不可能存在。你试过解压缩了吗?
 
刘李子,:你好,告诉我如何创建好吗?
 
原来你是要创建文件夹呀。
uses FileCtrl;

ForceDirectories('c:/aaa/bbb/dd');
 
zw84611:有很多文件夹还有子文件夹一系列
 
ForceDirectories()可以做到的。
 
zw84611,:我不是要方法,我想要代码实现的实例
 
faint...,难道这不是代码吗?

uses FileCtrl;

ForceDirectories('c:/aaa/bbb/dd');
 
假设你的解压缩的文件名列表是 aFileList: TStringList
(包含文件名和文件夹)
for i := 0 to aFileList.Count - 1 do
begin
ForceDirectories(ExtractFileDir(aFileList))
// 根据不同的文件名,创建不同的目录
XXX.SaveToFile(aFileList)
// 然后就可以保存到那个目录下去了。
end;

就是说,你对每个文件都要有一个这个步骤,不能一次性全部搞定的。
 
你是用什么压缩解压的?
一般都支持目录的啊,如果用VCLZIP等现成的控件的话
如果你非要自己来搞定,也可以这样
procedure TForm1.Button1Click(Sender: TObject);

var
Dir: string;
begin
Dir := 'C:/APPS/SALES/LOCAL';
if ForceDirectories(Dir) then
Label1.Caption := Dir + ' was created'
end;
先建好你要的目录,然后再把相应的文件保存到目录下。
 
多人接受答案了。
 
哈哈,笑死了。
 
顶部