2014-10-18 70 views
1

所以我有一個VB.net功能,看起來像這樣執行的功能:如何刪除和項目一個接一個在VB.net列表框中

Private Sub FlatButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FlatButton2.Click 
    Dim fs As FileSystemSecurity = File.GetAccessControl(FlatListBox1.SelectedItem) 
    fs.RemoveAccessRule(New FileSystemAccessRule(Environment.UserName, FileSystemRights.Modify, AccessControlType.Deny)) 
    File.SetAccessControl(FlatListBox1.SelectedItem, fs) 
    FlatListBox1.ClearSelected() 
End Sub 

我知道如何在一個動作反轉單個項目,但我不知道如何在列表框上的每個項目上執行此操作。我想這樣做,因爲我按下了退出表單上的一個按鈕。我將如何去做這件事?我已經嘗試過For Each循環,但它不起作用,至少不是我做到這一點。

+0

或許,如果你表現出的foreach循環嘗試,我們可以指出你哪裏是錯誤。 – Steve 2014-10-18 17:54:44

回答

0

如果你想循環通過所有項目來刪除訪問規則,它會是這樣的。

Private Sub RemoveAccessRule(item As String) 
    Try 
    Dim fs As FileSystemSecurity = File.GetAccessControl(item) 
    fs.RemoveAccessRule(New FileSystemAccessRule(Environment.UserName, FileSystemRights.Modify, AccessControlType.Deny)) 
    File.SetAccessControl(item, fs) 
    Catch 
    End Try 
End Sub 

用法:

For Each item As String In FlatListBox1.Items 
    RemoveAccessRule(item) 
Next 
+0

嗯,這似乎並不工作,它不會拋出任何錯誤,但在按下退出按鈕後,所選的.exe文件仍然無法訪問。下面是退出表單的代碼:http://pastebin.com/9B5n3bEM – kolega28 2014-10-18 19:15:49

+0

我在調試輸出中得到了這個:mscorlib.dll中發生了類型'System.IO.FileNotFoundException'的第一次機會異常 – kolega28 2014-10-18 19:30:58

+0

您可能需要添加該文件名的文件夾路徑。 – OneFineDay 2014-10-18 19:31:55

相關問題