我有一些代码是在我开始之前编写的(听起来像是每日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)
会更加简单。
答案 0 :(得分:3)
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()
如果你知道你将永远处理绝对路径,你现在可以摆脱那些代码。