use*_*603 3 c# directory exception-handling path
我想检查文件夹是否存在,如果没有,则创建它.但我不知道提供的路径是否有效.当路径无效时,会发生以下情况.
string path = "this is an invalid path";
if (!Directory.Exists(path))
Directory.CreateDirectory(path); //Exception thrown here
Run Code Online (Sandbox Code Playgroud)
如果提供无效路径,则会引发DirectoryNotFoundException
异常.
如何阻止此异常发生?我不想使用try-catch.我想检测即使在异常发生之前也会发生此异常.
使用Directory.Exists方法检查文件夹是否存在
if(Directory.Exists(path))
{
//Directory exists
}
else
{
// doesn't exist
}
Run Code Online (Sandbox Code Playgroud)
记得包括 System.IO;
代码失败的解释是路径无效.文件说:
DirectoryNotFoundException
指定的路径无效(例如,它位于未映射的驱动器上).
试图提前预测是否可以创建目录是一项工作的魔鬼.您需要考虑安全性,操作系统名称规则和限制,文件系统名称规则和限制以及是否映射驱动器.可能还有更多的担忧.我不打算重新实现系统免费提供的功能.
在任何情况下,虽然你可以打电话Directory.Exists
,你仍然需要允许抛出异常.如果文件系统在调用Directory.Exists
和后续调用之间发生更改Directory.CreateDirectory
,则会引发异常.例如,如果另一个进程创建了您尝试创建的目录.当然,这是一个不太可能的事件,但它完全有可能.
总而言之,远距离的最佳选择是捕获异常.众所周知的说法是,要求宽恕比要求许可更好.
归档时间: |
|
查看次数: |
14873 次 |
最近记录: |