【发布时间】:2011-01-10 19:07:17
【问题描述】:
在我的应用程序中,用户可以输入文件名。在处理之前,我想检查输入字符串是否是 Windows Vista 上的有效文件名。
最简单的方法是什么?
有效我指的是合法且不存在的
【问题讨论】:
-
当您说有效的文件名时,您是指文件存在这一事实,还是您在询问操作系统是否允许该名称?
-
在 (a) 现有、(b) 合法或 (c) 合法且不存在的情况下是否有效?
-
对不起,我应该澄清一下。它应该是 (c) 合法且不存在的
-
@roflcopter:您必须在创建文件时简单地处理错误。任何涉及存在性检查的文件系统操作在返回时都可能已过期,因为文件系统是全局共享资源。
-
@Roflcoptr:在您检查有效性和/或存在的那一刻与您实际尝试创建它的那一刻之间创建的具有完全相同名称的文件不应被视为正常的程序流程。您应该验证该文件不存在,但当您实际创建该文件时,该知识已经过时,应仅被视为有根据的猜测。它可能仍然是正确的,但它不是保证。