2013-05-18 36 views
2

我想一個列表視圖框的內容保存下面的代碼保存爲文本,收到錯誤消息

Dim W As IO.StreamWriter 
Private Sub Button6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click 
    Dim i As Integer 
    W = New IO.StreamWriter("c:\" & "sname" & ".txt") 
    For i = 0 To ListView1.Items.Count - 1 
     W.WriteLine(ListView1.Items(i)) 
    Next 
    W.Close() 
End Sub 

當我嘗試並運行它顯示一個代碼應用程序說:Access to the path 'c:\sname.txt' is denied.

任何幫助表示讚賞。

+0

您不能創建在C文件:根..在VB.Net – matzone

+0

它是一個比這更一般情況下,只有管理員用戶獲得Vista或更高版本訪問根在默認情況下,即使如此,他們UAC權限。但是,這是問題,請改用相對路徑。 – user1937198

+0

在Win Vista下,7,8 C:受UAC保護,使用另一個路徑(例如,詢問或%temp%) –

回答

1

在Windows Vista 7,8下,根路徑C:UAC保護,並且只能由管理員用戶寫入;您必須以管理員身份運行程序或使用其他路徑(例如詢問或%temp%)。

+0

嗨你能詳細說明%temp%嗎,非常感謝 – 85l00k85

0

由於UAC問題,您無法在磁盤根目錄下創建文件(本例中爲c :),只有admin用戶可以寫入該文件。你應該用管理員權限運行你的.exe文件,或者將文件保存在其他位置。

最後,在寫完文件後關閉您的StreamWriter

+0

th OP正在關閉Streamwriter – user1937198

+0

當我評論:P – Jhon

1

由於用戶訪問控制您確實無法直接在C盤下創建任何.txt文件,如其他所有用戶所述。

你可以做的是你可以在C盤創建一個文件夾,並保存你的.txt文件。

Dim W As IO.StreamWriter 
Private Sub Button6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click 
    Dim i As Integer 
    W = New IO.StreamWriter("c:\SomeFolderName" & "sname" & ".txt") 
    For i = 0 To ListView1.Items.Count - 1 
     W.WriteLine(ListView1.Items(i)) 
    Next 
    W.Close() 
End Sub 
相關問題