【发布时间】:2015-11-04 11:36:47
【问题描述】:
我正在编写一个对文件执行某些操作的 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) -
卫生署!太容易了。谢谢先生。
-
@jamiet 你也可以检查文件是否存在,直接在
FileInfo对象上:([System.IO.FileInfo]"C:\nonexist.ext").Exists -
很好,谢谢@MathiasR.Jessen
标签: powershell