即使子目录不存在,如何创建文件

saz*_*azr 1 c# file-io

即使某些子目录不存在,如何创建文件?我知道这个问题及其答案表明我Directory.CreateDirectory(path)用来创建我的文件及其目录.

但是当我尝试使用Directory.CreateDirectory(path)它创建文件时,会将文件创建为目录/文件夹而不是文件?

在此输入图像描述

Directory.CreateDirectory (@"C:\Users\me\AppData\LocalLow\company\product\database.db");
Run Code Online (Sandbox Code Playgroud)

为什么是database.db文件夹而不是文件?难道我做错了什么?即使某些子目录不存在,如何创建文件?

Dou*_*las 6

您需要指定方法的目录路径CreateDirectory,而不是完整的文件路径.您可以使用完整路径提取此GetDirectoryName:

string filePath = @"C:\Users\me\AppData\LocalLow\company\product\database.db";
string dirPath = Path.GetDirectoryName(filePath);   
                 // gives @"C:\Users\me\AppData\LocalLow\company\product"

Directory.CreateDirectory(dirPath);
File.Create(filePath);   // can use any file API call here, such as File.Open
Run Code Online (Sandbox Code Playgroud)