我正在寫一個PowerShell函數,對文件執行一些操作,文件的路徑作爲參數傳遞給函數。我是強類型和參數驗證的粉絲所以不是剛好路過一個System.String
我定義的參數,像這樣的文件路徑:強類型檢查函數參數中聲明的不存在的文件
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[System.Management.Automation.PathInfo]$PathInfo
通常我會用Resolve-Path
調用代碼得到一個可以傳遞給此參數的System.Management.Automation.PathInfo
類型的對象,但在這種情況下,文件尚不存在,因此Resolve-Path
會引發錯誤。
是否可以爲一個不存在的文件實例化一個System.Management.Automation.PathInfo
實例?如果是這樣,怎麼樣?如果沒有,你有建議,我可能會傳遞一個不存在的文件路徑到一個函數,仍然有強大的類型檢查。
什麼'FileInfo'?一個'FileInfo'實例可以指向一個不存在的目錄/文件('$ pathInfo = New-Object IO.FileInfo C:\ non-existent.txt') –
DOH!太容易了。謝謝你,先生。 – jamiet
@jamiet你也可以直接在'FileInfo'對象上檢查文件是否存在:'([System.IO.FileInfo]「C:\ nonexist.ext」)存在' –