天天看點

[VB.NET]請教一下如何解決My.Computer.FileSystem.GetFiles終于到的權限問題

[VB.NET]請教一下如何解決My.Computer.FileSystem.GetFiles終于到的權限問題

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

請教一下如何解決My.Computer.FileSystem.GetFiles終于到的權限問題

我想實作删除系統盤裡面的所有.log檔案

[code]

Dim files As System.Collections.ObjectModel.ReadOnlyCollection(Of String)

files = My.Computer.FileSystem.GetFiles(System.Environment.SystemDirectory, FileIO.SearchOption.SearchAllSubDirectories, *.log )

ProgressBar1.Maximum = files.Count

Dim i As Int16

For Each strfile As String In files

i += 1

ProgressBar1.Value = i

My.Computer.FileSystem.DeleteFile(strfile)

Next

MessageBox.Show( 操作完成 )

End Sub

[/code]

但是搜尋到某些檔案的時候會報錯 Access to the path C:/Windows/System32/LogFiles/WMI/RtBackup is denied.

如何跳過這些不具有通路權限的檔案

__________________________________________________________________________

try

{

}

catch

{

}

__________________________________________________________________________

我試演過

Try

files = My.Computer.FileSystem.GetFiles(System.Environment.SystemDirectory, FileIO.SearchOption.SearchAllSubDirectories, *.log )

Catch ex As Exception

Exit Try

End Try

但這樣做files變量就取不到任何值了阿

__________________________________________________________________________

還有别的辦法嗎?

__________________________________________________________________________

看來這個問題還是比較棘手的阿

__________________________________________________________________________

可以用API

但是具體我也不知道

__________________________________________________________________________

可以先用GetDirectories搜尋,對那些可以通路的檔案夾再使用GetFiles,對不能通路的就跳過,或者用AccessControl來添權重限……

__________________________________________________________________________

呵呵~ 我還是用api吧

.net類看來還是不夠完善阿

__________________________________________________________________________

繼續閱讀