如果创build目录不存在创build文件?

如果目录不存在,我在这里有一段代码:

System.IO.File.WriteAllText(filePath, content); 

在一行(或几行)中,是否可以检查通向新文件的目录是否不存在,如果不存在,在创build新文件之前创build它?

我正在使用.NET 3.5。

(new FileInfo(filePath)).Directory.Create()在写入文件之前。

要么

 System.IO.FileInfo file = new System.IO.FileInfo(filePath); file.Directory.Create(); // If the directory already exists, this method does nothing. System.IO.File.WriteAllText(file.FullName, content); 

你可以使用下面的代码

  DirectoryInfo di = Directory.CreateDirectory(path); 

正如@hitec所说的,你必须确保你有正确的权限,如果你这样做的话,你可以使用这一行来确保目录的存在:

Directory.CreateDirectory(Path.GetDirectoryName(filePath))

您可以使用File.Exists来检查文件是否存在,并根据需要使用File.Create创build。 请确保您检查是否有权在该位置创build文件。

一旦确定文件存在,您可以安全地写入文件。 尽pipe作为一个预防措施,你应该把你的代码放到一个try … catch块中,并且捕获这个函数可能会引发的exception,如果事情没有按照计划完成的话。

基本文件I / O概念的附加信息 。

var filePath = context.Server.MapPath(Convert.ToString(ConfigurationManager.AppSettings["ErrorLogFile"]));

var file = new FileInfo(filePath);

file.Directory.Create(); 如果目录已经存在,这个方法什么都不做。

var sw = new StreamWriter(filePath, true);

sw.WriteLine(Enter your message here);

sw.Close();