我正在尝试确定用户输入的字符串对于表示文件夹路径是否有效。有效是指格式正确。
在我的应用程序中,该文件夹代表安装目标。假设文件夹路径是有效的,我想判断文件夹是否存在,如果不存在则创建。
我目前正在使用 IO.Directory.Exists( String path )
。我发现这工作正常,除非用户没有正确格式化字符串。发生这种情况时,此方法将返回 false,表示该文件夹不存在。但这是一个问题,因为之后我将无法创建该文件夹。
通过谷歌搜索,我发现了使用正则表达式检查格式是否正确的建议。我没有使用正则表达式的经验,想知道这是否是一种可行的方法。这是我发现的:
Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
正则表达式测试是否与 Directory.Exists()
结合,给我一个足够好的方法来检查路径是否有效以及它是否存在?我知道这会因操作系统和其他因素而异,但该程序仅针对 Windows 用户。
最佳答案
调用Path.GetFullPath
;如果路径无效,它将抛出异常。
要禁止相对路径(例如 Word
),请调用 Path.IsPathRooted
.
关于c# - 检查字符串是否为有效的 Windows 目录(文件夹)路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137097/