使用Automation对象后文件为什么无法被删除及被其他程序打开?在线等待回答! 怎么没人回答????? (200分)

  • 主题发起人 主题发起人 TrueFail
  • 开始时间 开始时间
T

TrueFail

Unregistered / Unconfirmed
GUEST, unregistred user!
我用DELPHI做了一个包括文件上传,目录管理的Automation对象。
功能也已实现,但在ASP中使用了该对象以后所有被它操作到的目录(只是读取该目录下有什么文件)
,文件都不能被删除了,
用其他的程序也不能打开该目录下的文件了。操作系统是WIN2000高级服务器版+IIS 5。
该如何解决该问题????????????????
(打开文件函数)
function TFileManage.ReadFile(AFileName: OleVariant): OleVariant;
var
TmpList:TStringList;
begin
TmpList:=TStringList.Create;
try
try
TmpList.LoadFromFile(AFileName);
Result:=TmpList.Text;
except
Result:='';
end;
finally
TmpList.Free;
end;
end;
(删除目录及文件函数)
function TFileManage.DelFolder(AFolder: OleVariant): OleVariant;
var
Found:integer;
SearchResult:TSearchRec;
begin
FileSetAttr(AFolder,0);
if FileGetAttr(AFolder)<>faDirectory then
begin
DeleteFile(AFolder);
exit;
end;
Found:=FindFirst(AFolder+'/*.*',faAnyFile,SearchResult);
while Found=0 do
begin
if (SearchResult.Name<>'.')and(SearchResult.Name<>'..') then
DelFolder(AFolder+'/'+SearchResult.Name);
Found:=FindNext(SearchResult);
end;
if (SearchResult.Name<>'.')and(SearchResult.Name<>'..') then
FindClose(SearchResult);
RmDir(AFolder);
end;
 
直接用哪个SHFileOpStruc函数把文件夹干掉就OK了
 
他能删除那些在”我的电脑“中无法删除(“资源共享错误“)的文件吗?
我看过那些卸载程序,他能将正在打开的文件给删除掉,他们是怎么做的?
只要能解决问题,我把我还有105分也都给你了!
 
第一个好像没有问题啊。
你可以看看是否运作,即ReadFile是否执行。
你是不是装了一些其他的控制软件 比如:网络实名之类的东西?
下面是我平时用的比较多的一个删除函数。你可以修改一下作为你用

function DelTree(sourdirstr:AnsiString):boolean;
var
SeRec:TSearchRec;
begin
Result:=true;
if DirectoryExists(sourdirstr) then
try
if( FindFirst(sourdirstr+'/*.*',faAnyFile,SeRec)=0) then
begin
repeat
if ((SeRec.Name<>'.') and (SeRec.Name<>'..')) then
if SeRec.Attr=faDirectory then
begin
if not DelTree(sourdirstr+'/'+SeRec.Name) then
Result:=false;
end
else if SeRec.Attr=$00000020 then
DeleteFile(Pchar(sourdirstr+'/'+SeRec.Name));
until FindNext(SeRec) <> 0;
FindClose(SeRec);
removedir(sourdirstr);
end;
except
Result:=false;
end
else
Result:=false;
end;
 
问题出现在当我用ASP代码调用那个ReadFile函数时总是返回空。
在可执行程序调试那个函数时如果打开的是其他任何的文件都没异常。但要是打开的是我
从IE上传的文件时就出错!!!!!(我装的是WIN2000高级服务器版+IIS5。0)
 
关注,我也遇到过临时文件无法访问、删除的现象(win2k server)。
 
多人接受答案了。
 
后退
顶部