Vb.net vb中创建文件夹的问题

Vb.net vb中创建文件夹的问题,vb.net,Vb.net,我无法使用VB.NET在驱动器C:中创建文件夹。它说“访问被拒绝”。我尝试了很多方法,但都不管用。我已尝试使用此代码: If my.Computer.FileSystem.DirectoryExists("C:\log.txt") Then Using writer As System.IO.TextWriter = System.IO.File.CreateText("C:\log.txt") writer.WriteLine(Me.Top & vbCrLf &

我无法使用VB.NET在驱动器C:中创建文件夹。它说“访问被拒绝”。我尝试了很多方法,但都不管用。我已尝试使用此代码:

If my.Computer.FileSystem.DirectoryExists("C:\log.txt") Then
    Using writer As System.IO.TextWriter = System.IO.File.CreateText("C:\log.txt")
        writer.WriteLine(Me.Top & vbCrLf & "'top")
        writer.WriteLine(Me.Left & vbCrLf & "'lrft") ''sa scriu 
        writer.WriteLine(Me.Width & vbCrLf & "'width")
        writer.WriteLine(Me.Height & vbCrLf & "'height")
    End Using
Else 
    Directory.CreateDirectory("C:\log.txt")
    Using writer As System.IO.TextWriter = System.IO.File.CreateText("C:\log.txt")
        writer.WriteLine(100 & vbCrLf)
        writer.WriteLine(100 & vbCrLf) ''sa scriu 
        writer.WriteLine(100 & vbCrLf)
        writer.WriteLine(100 & vbCrLf)
    End Using
End If

我该怎么办?

问题似乎在于,您将目录(即文件夹)的概念与文件的概念混为一谈。首先,检查名为log.txt的文件夹是否存在。如果确实存在,则尝试在同一位置以相同的名称创建新文件。相反,如果log.txt文件夹不存在,则创建该文件夹,然后尝试在同一位置创建同名文件。不管怎样,它总是会失败。如果同一位置已有同名文件夹,则无法创建名为log.txt的文件

我怀疑您打算做的是在尝试在该文件夹中创建文件之前检查文件夹C:\是否存在。例如,类似这样的事情:

If My.Computer.FileSystem.DirectoryExists("C:\") Then
    Using writer As System.IO.TextWriter = System.IO.File.CreateText("C:\log.txt")
    ' ...
    End Using
Else 
    Directory.CreateDirectory("C:\")
    Using writer As System.IO.TextWriter = System.IO.File.CreateText("C:\log.txt")
        ' ...
    End Using
End If
这当然更有逻辑意义,但在这种情况下,这有点愚蠢,因为C:\是驱动器的根文件夹,因此它将始终存在(除非驱动器卷不存在,在这种情况下创建文件夹将失败)


正如上面的评论中所指出的,即使这对你有效,这仍然是一种不好的做法。如果不太可能,用户很有可能无法访问C:驱动器的根目录。写入到隔离存储、系统的临时文件夹、用户的应用程序数据文件夹,或其他更容易访问的任何地方都是非常可取的。

写入到
用户\..
操作系统限制对启动驱动器根文件夹的访问。Drve C就是一个例子,但我尝试了“c:\Program Files\new folder\log.txt”…并且每个位置都与驱动器c连接,它将无法工作。它会不断警告我“访问被拒绝”。(而“new folder”是一个新文件夹,应该在运行时创建)您不能使用c:\Program Files\new folder\log.txt作为目录路径。您需要使用c:\Program Files\new folder作为目录路径。@您通常不能写入
程序文件
程序文件(x86)
或其子目录。如果拒绝使用
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),请使用
C:\Temp