类型的值' DirectoryInfo'无法转换为' String'

时间:2017-05-08 16:26:22

标签: vb.net system.io.directory

我正在尝试在我的.exe文件所在的父文件夹中启动.exe文件。

不幸的是在做的时候:

dir = Directory.GetParent(Directory.GetCurrentDirectory))

该程序给我一个错误:

  

目录信息的价值类型'无法转换为'字符串'。

它与CurrentDirectory完美配合,但不与GetParent配合使用。即使我只是说:

dir = Directory.GetParent("")

我认为它们都返回相同的文件类型,但Visual Studio告诉我(当GetParent方法着色时)GetParent返回DirectoryInfo值。

有没有办法将其转换为字符串,或者能够将其用于我的需求?

2 个答案:

答案 0 :(得分:0)

Directory.GetParent Method (String)会返回DirectoryInfo Class个实例。

我希望您可以使用DirectoryInfo.FullName Property获取目录名称,这是一个字符串。

类似的东西:

dir = Directory.GetParent(Directory.GetCurrentDirectory())).FullName

答案 1 :(得分:0)

Directory.GetParent返回一个DirectoryInfo类,因为错误说这不能转换为字符串。

相反,你要做的是声明一个变量来保存DirectoryInfo,然后从中访问属性,特别是FullName属性:

Dim dirInfo As DirectoryInfo = Directory.GetParent(Directory.GetCurrentDirectory)
Dim path As String = dirInfo.FullName

这当然可以用一个班轮完成,但为了澄清我认为它会帮助你分解它。对于单线使用:

Dim dir As String = Directory.GetParent(Directory.GetCurrentDirectory).FullName

在这两种情况下,输出都是:

  

C:\发展\ VS2013 \ WindowsApplication1 \ BIN