She*_*don 11 c# directory file
我需要将一些文件复制到一个目录中,但有时该目录尚不存在,必须先创建.大多数情况下,目录将存在,因为它只需要创建一次.
我知道我可以放在Directory.CreateDirectory()文件副本之前,CreateDirectory()如果目录已经存在则会返回.
string destFolder; // path to destination
string sourceFolder; // path to source
Directory.CreateDirectory( destFolder ); // this will work even if destFolder exists
File.Copy( sourceFolder + sourceFileName, destFolder + sourceFileName );
Run Code Online (Sandbox Code Playgroud)
但我知道几乎在所有情况下目标文件夹都已存在,因此检查它是否存在是否更快,而不是CreateDirectory()反正调用.
if( !Directory.Exists( destFolder ) ) // check if it exists first
{
Directory.CreateDirectory( destFolder );
}
// now move on to using the folder
Run Code Online (Sandbox Code Playgroud)
考虑到用户只会做一次,我真的不在乎创建目录需要多长时间.我更感兴趣的是,if声明是否Directory.Exists()比Directory.CreateDirectory()确定目录已存在所需的时间更快.
Directory.CreateDirectory()虽然它可能存在,但每次打电话都"感觉"浪费,所以我"先感觉更好",但是它仍然是一个函数调用,所以我真的甚至通过额外的代码来获得优势if陈述和Directory.Exists()检查?
Mar*_*own 15
您可以在Microsoft参考源中检查Directory类的代码.首先Directory.CreateDirectory做的是调用Directory.Exists(或内部等效的,InternalExists).所以使用这两种方法你就是这样写的:
if (!Directory.Exists(dir))
{
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
}
Run Code Online (Sandbox Code Playgroud)
我个人不会做Exists检查.