我正在尝试删除C:\ Windows \ temp中的文件夹。 但我得到访问被拒绝错误,以管理员身份运行程序。
我使用的语法:
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\Temp\"
System.IO.Directory.Delete(path, True)
尝试在Impersonation下运行语法,任何想法我如何实现这一点。根目录c:\ i上的文件夹能够删除。 还尝试使用'requireAdministrator'添加app.manifest文件。
答案 0 :(得分:2)
Microsoft已对有关删除SPECIALFOLDER规范下的文件和文件夹的权限进行了一些修改。我认为这是由于较旧的安全问题。
只有在管理APP作为管理员和其他人(甚至是管理员)时,您才能删除其中的一部分。
答案 1 :(得分:1)
您可能希望在删除文件夹之前先尝试清除临时文件。您也可以使用内置的Windows进程..完成后尝试删除该文件夹。
Dim p As New Process()
p.StartInfo.FileName = "RunDll32.exe"
p.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 8"
p.StartInfo.CreateNoWindow = True
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
p.Start()
Dim p1 As New Process()
p1.StartInfo.FileName = "RunDll32.exe"
p1.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 2"
p1.StartInfo.CreateNoWindow = True
p1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
p1.Start()
'Clear Temp Files
'Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 "
'Clear Cookies
'Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"
'Clear History
'Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1"
'Clear Form data
'Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16"
'Clear Svaed Passwords
'Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32"