什么是获取包含我可以肯定它的文件夹名称的字符串的最佳方式不存在吗?也就是说,如果我调用DirectoryInfo.Exists
给定的路径,它应该返回false.
编辑:背后的原因是我正在为错误检查器编写测试,错误检查器测试路径是否存在,所以我想知道获得不存在的路径的最佳方法.
在GUID之后命名 - 只需取出非法字符.
没有任何方法可以按照您想要的方式做到.如果你考虑一下,你会看到即使在调用DirectoryInfo.Exists
返回false之后,其他一些程序也可以继续创建目录 - 这是一个竞争条件.
处理此问题的常用方法是创建一个新的临时目录 - 如果创建成功,则表示在创建它之前它不存在.
好吧,没有创建目录,你可以肯定的是它几微秒前就不存在了.这是一种可能足够接近的方法:
string path = Path.GetTempFileName(); File.Delete(path); Directory.CreateDirectory(path);
请注意,这会创建阻止线程竞争的目录(即从您下面窃取目录的另一个进程/线程).