VB.Net - FileInfo.FullName - 我错过了什么吗?

时间:2011-01-27 11:40:32

标签: vb.net .net fileinfo system.io.fileinfo

我有一些代码是在我开始之前编写的(听起来像是每日WTF的提交!),它加载了一个xml文件进行处理(Throw行已被简化以隐藏罪魁祸首的身份,否则它逐字)。

Try
    docData.Load(strPath)
Catch oError As Exception
    Throw New Exception("There is a load or parse error in the xml")
End Try

oFileInfo = New FileInfo(strPath)
strFileName = oFileInfo.FullName
oFileInfo = Nothing

strFileName在方法中再次使用,传递给另一个方法

删除文件时,

strPath在方法中再次使用

来自MSDN

  

FullName:获取目录或文件的完整路径。 (继承自FileSystemInfo。)

当然,这只是返回strPath中已有的内容,可以用简单的

替换

strFileName = strPath

甚至完全取消strFileName并始终使用strPath

或者我错过了什么? FileInfo.FullName还有其他事情吗?

我确实认为这是一个文件存在检查,但Try...Catch周围的XmlDocument.Load已经处理了这个问题,而且File.Exists(strPath)会更加简单。

2 个答案:

答案 0 :(得分:3)

即使输入strPath是相对路径,

FileInfo.FullName也将返回完整路径。

答案 1 :(得分:2)

@Joe所说的是技术上strPath可能是一条相对路径。当您将其传递到FileInfo并检索FullName属性时,它将转换为绝对路径。虽然你说所有东西都是UNC(并且我假设你也意味着绝对路径),但有可能在某一点上用相对路径调用它。例如,此代码将输出c:\Users\...\bin\somefile.bin

    Dim F As New System.IO.FileInfo("..\somefile.bin")
    Trace.WriteLine(F.FullName)
    Me.Close()

如果你知道你将永远处理绝对路径,你现在可以摆脱那些代码。

相关问题