1
21
100%准确地检查路径的字符串格式是相当困难的,因为它将取决于使用它的文件系统(如果它不在同一台计算机上,则取决于网络协议)。 即使在Windows甚至是NTFS中,它也不简单,因为它仍然依赖于后台使用的api.net与内核通信。 由于目前大多数文件系统都支持Unicode,所以可能还需要检查correcly编码的Unicode、规范化等的所有规则。 我要做的是只做一些基本检查,然后在使用路径后正确地处理异常。有关可能的规则,请参见:
|
2
51
你可以使用 FileInfo 构造函数。如果“文件名为空、仅包含空格或包含无效字符”,它将引发ArgumentException。它还可以引发SecurityException或UnauthorizedAccessException,我认为如果您只关心格式,可以忽略它。 另一种选择是检查 Path.GetInvalidPathChars 直接。例如。:
|
3
8
以下是一些您可能会用到的东西:
|
4
3
在尝试创建该文件之前,您不能真正确定。可能路径有效,但安全设置不允许创建文件。唯一能告诉您路径是否真的有效的实例是操作系统,那么为什么不尝试创建一个catch-the-ioexception文件,该文件指示发生了真正的错误?imho这是一个更简单的方法:假设输入是有效的,如果输入无效,就做一些事情,而不是做很多不必要的工作。 |
5
2
你试过正则表达式吗?
应该工作 |
6
2
尝试使用此方法,它将尝试覆盖所有可能的异常情况。它几乎适用于所有与窗口相关的路径。
|
7
1
|
8
0
我在regexlib.com上找到这个( http://regexlib.com/REDetails.aspx?regexp_id=345 )作者:Dmitry Borysov。 “文件名验证程序。验证UNC(\server\share\file)和常规MS路径(c:\file)“
用regex.ismatch运行它,您将得到一个bool,指示它是否有效。我认为正则表达式是可行的,因为该文件可能不存在。 |
9
0
只需在try catch语句中使用path.combine():
编辑: 请注意,如果路径包含通配符(“*”和“?”),则此函数不会引发异常。因为它们可以在搜索字符串中使用。 |
10
0
静态类system.io.path可以满足您的要求。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |