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

标签 c# file-io

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

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

enter image description here

Directory.CreateDirectory (@"C:\Users\me\AppData\LocalLow\company\product\database.db");

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

最佳答案

您需要为 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

关于c# - 即使子目录不存在,如何创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24400867/

相关文章:

c - 用C读取输入文件

c# - 有没有办法让 using 语句带有动态创建的目标?

c# - 检查两个区域是否接触

c# - 在 C# Telegram Bots 中使用键盘编辑短信

c++ - RapidXML 从文件中读取 - 这里有什么问题?

c++ - 使用boost将给定目录中每个最低级别文件夹的文件递归复制到另一个目录 - C++

c# - SerialPort 读取在 C# 中不起作用

c# - 你能得到抛出异常的方法名吗?

java - 在Java中递归删除目录

c - 使用 readv() linux 系统调用时,冗余字符被添加到缓冲区之一