c# - 创建目录或删除目录比代码慢
问题描述
如果你能帮助我,只是一个简单的问题,拜托。在 C# 中,我正在创建一个目录,如果它不存在的话。在下一个命令中,我正在检查目录是否存在,我将复制一些文件。
问题是,创建新目录或删除它需要时间并且比下一个代码执行时间慢。
软件报错“文件夹不存在”。我曾经Thread.Sleep(5000);
在将内容复制到目录之前等待 5 秒钟。
它似乎正在工作,但我觉得这不是应该做的。有谁知道更好的编码?
string logDirectoryPath = Directory.GetCurrentDirectory() + "\\LogFiles";
if (!Directory.Exists(logDirectoryPath))
{
Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\LogFiles");
Thread.Sleep(5000);
}
if (Directory.Exists(Directory.GetCurrentDirectory() + "\\LogFiles"))
{
var s = logDirectoryPath + "\\Log_" + DateTime.Now.ToString("dd_MM_yyyy") + ".txt";
using (StreamWriter w = File.AppendText(s))
{
w.WriteLine("--");
w.Write("\r\nLog Entry : ");
w.WriteLine($"{DateTime.Now.ToLongTimeString()} {DateTime.Now.ToLongDateString()}");
}
}
//编辑 只是想也许我应该使用循环?
While(!Directory.Exists(logDirectoryPath))
{
Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\LogFiles");
}
解决方案
使用 DirectoryInfo
DirectoryInfo di = new DirectoryInfo(#{PATHSTRING});
并使用 di.Exists 检查它是否存在 / di.Create() 创建文件夹
我想推荐使用您已经定义的 logDirectoryPath。
像这样
DirectoryInfo di = new DirectoryInfo(logDirectoryPath);
if ( !di.Exists ) {
di.Create();
}
推荐阅读
- bash - 如何将 $(command) 回显到 bash 配置文件中
- algorithm - Leetcode 动态规划的目标和
- java - 如何使用 Mybatis 和 SQLite 创建表?
- php - 遍历具有特定条件的php多维数组
- azure-functions - 在 Azure 上更新 Functions 版本
- sql - Bigquery - 忽略 NULL 值的列之间的平均值
- node.js - 为什么我的 git bash root 命令不起作用?
- ruby-on-rails - 在 aws 实例上运行 rake 任务
- html - 图片无法在移动设备上缩放
- python - 时间戳的 Asyncpg INSERT 查询在“18”处或附近返回 ERROR 语法错误