2014-03-12 20 views
-1

我不断尝试接收此错误,无论我尝试请尝试帮助,我试图显示给出驱动器的目录信息'DirectoryInfo'是'IO'中的一个类型,不能用作表达式

例子:

C:\ NTFS 500 000 000 Bytes 

代码:

Private Sub BtnCheckDestination_Click(sender As System.Object, e As System.EventArgs) Handles BtnCheckDestination.Click 
    Dim hdrive As Int64 
    Dim di As New IO.DirectoryInfo("H:") 

    di = IO.DirectoryInfo("H:\").ToString 

    TxtDestination.Text = (di).ToString 

谢谢!

回答

2

在这里,你创建的DirectoryInfo一个实例:

Dim di As New IO.DirectoryInfo("H:") 

注意diDirectoryInfo类型的现在。

下一行,您尝试使用括号使用类型DirectoryInfo为一个表达式(这是行不通的,这就是编译器会告诉你),你尝试调用ToString()上:

di = IO.DirectoryInfo("H:\").ToString 

您希望在您刚创建的实例上调用ToString()。另外,您还会尝试将di的类型更改为string,如果您设置了OPTION STRICT OFF,则该类型将起作用,但这通常不是一种好的做法。


所以你可以使用:

Dim di = New IO.DirectoryInfo("H:\") 
TxtDestination.Text = di.ToString() 

尽管如此,看来你要寻找的DriveInfo类代替,例如:

Dim di = new DriveInfo(@"H:\"); 
TxtDestination.Text = String.Format("{0} {1} {2} Bytes", di.Name, di.DriveFormat, di.AvailableFreeSpace) 
+0

谢谢你,请原谅我糟糕的语法在过去两天中,我一直处于这种状态几乎不停止,您的解决方案可以正常工作,但只能输出驱动器路径:H:\我希望它显示为H:\ NTFS 500 000 000字节 – user3410310

+0

使用DriveIn相反。查看我的更新答案的例子。 – sloth

+0

非常完美,非常感谢你 – user3410310

相关问题