一个简单窗体用到 OpenDialog和SaveDialog,做的是一个附件的上传下载打开功能(用二进制流保存),代码是下面的代码
我现在遇到问题,上传,下载没有问题,可是打开的时候有错误。
打开就是要求点击按钮后直接打开文件,我考虑的方法是先下载保存到一个系统目录下面然后打开,我想用系统的临时文件夹,因为这个文件夹系统可以自动删除文件。
在打开事件里,我想先得到系统的临时文件夹路径,可是我得不到这个路径,showmessage为空,不知道错误在哪里。。。
上传代码(这个没有问题,就是写一下,客服好知道我是怎么做的)
procedure TMainForm.Button1Click(Sender: TObject);
var
lFileName: String;
begin
with OpenDialog do
if Execute then
with DataSetBrokerAffix.DataSet do
begin
Append;
lFileName := ExtractFileName(FileName);
FieldByName('Name').AsString := lFileName;
FieldByName('FSourceFile').AsString := lFileName;
TBlobField(FieldByName('Content')).LoadFromFile(FileName);
Post;
ApplyUpdates;
end;
end;
打开事件里面的代码:
procedure TMainForm.Button3Click(Sender: TObject);
var
Reg:TRegistry;
Cachedir : string;
//identifier:'TRegistry';
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\',False);
Cachedir :=Reg.ReadString('Cache');
showmessage(Cachedir);
with DataSetBrokerAffix.DataSet, SaveDialog do
begin
TBlobField(FieldByName('Content')).SaveToFile(Cachedir);
end;
Borland.Delphi.ShellAPI.ShellExecute(0,'open',Cachedir,'','',Borland.Delphi.Windows.SW_NORMAL); //pchar(Cachedir) Application.Handle
finally
reg.Free;
end;
end;
再说一下,问题是得不到系统临时文件夹目录,应该是都有的啊 |