2011-01-27 100 views
1

我有一些在我开始之前编写的代码(听起来像是提交给The Daily WTF!),它加载了一个xml文件进行处理(Throw行被简化为隐藏罪魁祸首的身份,否则它的逐字)。VB.Net - FileInfo.FullName - 我错过了什么吗?

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)就会简单得多。

回答

3

FileInfo.FullName即使输入strPath是相对路径,也将返回完整路径。

+0

这里的路径将始终是UNC – Shevek 2011-01-27 11:49:55

2

@Joe说的是技术上strPath可能是一个相对路径。当你将其转换为FileInfo并检索FullName属性时,它将转换为绝对路径。虽然你说所有东西都是UNC(并且我假设你也指绝对路径),但它有可能在某一时刻被称为相对路径。比如这段代码将输出c:\Users\...\bin\somefile.bin

​​

如果你知道,你永远会处理你可能现在就摆脱码的绝对路径。