c# - EnumerateFiles 以避免缓存

标签 c# directory

我正在使用 EnumerateFiles 获取目录中的所有 *.md:

foreach (var mdName in Directory.EnumerateFiles(Path.Combine(BaseDirectory,
                            "assets/markdowns"), "*.md", SearchOption.AllDirectories)) 
{
    // async md parser call goes here
}

我有三个测试文件a.mdb.mdc.md

现在,当我将 a.md 重命名为 a1.md 时,EnumerateFiles 返回旧文件名和新文件名。PowerShell 的结果显示我有 3 个文件,而 EnumerateFiles 返回 4 个文件。

我在某处读到 EnumerateFiles 使用延迟加载进行某种缓存?但是当文件被重命名时,它不应该使缓存失效吗?

GetFiles/EnumerateFiles 输出:

[0]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\a.md"
[1]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\b.md"
[2]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\c.md"
[3]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\_a.md"
[4]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\_a1.md"
[5]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\_a2.md"
[6]: "C:\\Repos\\KiddiesBlog\\Tests\\bin\\Debug\\assets/less\\_a3.md"

最佳答案

原来是我的错误。有一个 MSBuild 任务负责在 Debug 目录中创建实际 Assets 的卷影副本。它具有所有以前的文件。 VS 不会清除 Clean Solution 上的文件夹。我想我需要修改这个任务来观察源目录的变化。

关于c# - EnumerateFiles 以避免缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20173635/

相关文章:

c# - 如何使用 epplus 遍历 excel 表中的行?

c# - 将按键作为函数中的参数发送

PHP include 包含在 include 中(不同的目录)

php - 目录中每个文件的循环代码

iphone - XCode 4 - 轻松访问安装到模拟器上的应用程序的 "Documents"文件夹

c - 使用C同步文件夹

c# - 从 Uri 对象 C# 获取文件扩展名或 "HasExtension"类型 bool

c# - 网络摄像头捕获并转换为 avi

c# - IIS 中的 HTTP 重定向问题,在浏览器上不断出现 ERR_TOO_MANY_REDIRECTS

python-3.x - Python中 'normalize'目录路径的最有效方法是什么?