我在这里有一段代码,如果目录不存在就会中断:
System.IO.File.WriteAllText(filePath, content);
在一行(或几行)中,是否可以检查导致新文件的目录是否不存在,如果不存在,则在创建新文件之前创建它?
我使用的是。net 3.5。
我在这里有一段代码,如果目录不存在就会中断:
System.IO.File.WriteAllText(filePath, content);
在一行(或几行)中,是否可以检查导致新文件的目录是否不存在,如果不存在,则在创建新文件之前创建它?
我使用的是。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所说,你必须确保你有正确的权限,如果你这样做,你可以使用这一行来确保目录的存在:
CreateDirectory (Path目录。GetDirectoryName (filePath)
将文件移动到一个不存在的目录的一个优雅的方法是创建以下扩展到本地FileInfo类:
public static class FileInfoExtension
{
//second parameter is need to avoid collision with native MoveTo
public static void MoveTo(this FileInfo file, string destination, bool autoCreateDirectory) {
if (autoCreateDirectory)
{
var destinationDirectory = new DirectoryInfo(Path.GetDirectoryName(destination));
if (!destinationDirectory.Exists)
destinationDirectory.Create();
}
file.MoveTo(destination);
}
}
然后使用全新的MoveTo扩展:
using <namespace of FileInfoExtension>;
...
new FileInfo("some path")
.MoveTo("target path",true);
检查方法扩展文档。
创建
(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);
var filePath = context. MapPath(转换. tosthead)(配置。appset . appset[“ErrorLogFile”])
文件var = new FileInfo(filePath);
file.Directory.Create ();如果目录已经存在,此方法不执行任何操作。
var sw = new StreamWriter(filePath, true);
西南。WriteLine(在这里输入您的信息);
sw.Close ();