Rename和RemoveDir在Windows2000下(50分)

  • 主题发起人 主题发起人 sqldelphi
  • 开始时间 开始时间
S

sqldelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
在Windows2k下用Rename(File,NewFileName)来改目录名,<br>用RemoveDir(DirectoryName)来删除一个空目录,用RmDir和RemoveDirectory也一样。<br>两种情况都出现IO错误,错误号是32,也找不到帮助这个32错误是什么错误信息。<br>原来在98下编译是不会的,一切正常。不知道这是什么原因引起的。<br>
 
Win2000Server中很正常,没问题。会不会是设置中的权限问题?
 
RaiseLastWin32Error <br>SysErrorMessage<br><br>这就是看Error内容的,给我分
 
那个错误显示我也已经找到办法。是文件正在被其它进程所使用。可就是找不出来在哪。<br>同样在Win2000Pro下编译的程序,在98下一切正常,到了Win2000Pro下运行就是不行了。<br>不过可以给你一点分
 
找到问题所在了。请看程序源码:<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var tmpTable:TTable;<br>begin<br>tmpTable:=TTable.Create(Self);<br>with tmpTable do begin<br>&nbsp; if Active then Close;<br>&nbsp; TableName:='d:/delphi/projects/dcm/dcm302/aa/dc.db';<br>&nbsp; DbSession.AddPassword('dicksoft');<br>&nbsp; Open;<br>&nbsp; Close;<br>&nbsp; DBSession.RemoveAllPasswords;<br>&nbsp; Free;<br>end;<br>end;<br><br>procedure TForm1.Button2Click(Sender: TObject);<br>begin<br>if not RenameFile('d:/delphi/projects/dcm/dcm302/aa','d:/delphi/projects/dcm/dcm302/bb') then<br>ShowMessage(SysErrorMessage(GetLastError));<br>end;<br><br>程序在Windows2000下,先执行第一个过程,第二个过程就会显示一个错误:无法访问文件,因为另外一个进程正在使用该文件。<br>但是在Windows98下,就一切正常!<br><br>不知道该如何处理这个问题?
 
多人接受答案了。
 
test1:string;<br><br>test1:='d:/test1/t1';//t1为空目录了<br>removedir(test1);<br><br>为什么不用删除<br>我直接用removedir('d:/test1/t1')就可以
 
后退
顶部