2011-01-27 91 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

​​

如果你知道,你永遠會處理你可能現在就擺脫碼的絕對路徑。