Aracılığıyla paylaş


InMemoryDirectoryInfo, rootDir'i dosyalara önceden eklir

InMemoryDirectoryInfo şimdi belirtilen kök dizini dosya koleksiyonuna ekler.

InMemoryDirectoryInfo, MatcherExtensions.Match tarafından kullanılır ve Matcher'nin diske erişmeden glob eşleştirme desenlerini yürütmesini sağlar.

Önceki davranış

Daha önce, files bağımsız değişkenindeki göreli yollar geçerli çalışma dizinine (CWD) eklenmiştir. Bu, bellek içinde çalışması gereken bir tür için CWD'ye gereksiz bir bağımlılık neden oldu.

Yeni davranış

.NET 9'dan başlayarak, oluşturucunun files bağımsız değişkenindeki göreli yollar belirtilen kök dizine eklenir.

Sürüm kullanıma sunulmuştur

.NET 9 Önizleme 1

Kesinti yaratan değişiklik türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Geçerli çalışma dizinine ait olandan farklı bir sürücü harfi kullanan bellek içi yollarla ilişkili engellenmiş senaryolar vardı. Örneğin, bkz. dotnet/runtime issue 93107.

Önceki davranışa bağlıysanız, artık kök dizininin önek olarak eklendiği dosyaları hesaba katmak için kodunuzu ayarlayın. Örneğin:

// Since rootDir is also relative, it could've been used to filter the matching scope of `files`.
-string rootDir = "dir1";
// Now that's not possible; everything in `files` is under `root`.
+string rootDir = "root";
string[] files = ["dir1/test.0", "dir1/subdir/test.1", "dir2/test.2"];

-PatternMatchingResult result = new Matcher().AddInclude("**/*").Match(rootDir, files);
// Adjust the pattern if you want to scope down to dir1.
+PatternMatchingResult result = new Matcher().AddInclude("dir1/**/*").Match(rootDir, files);
Console.WriteLine(string.Join(", ", result.Files.Select(x => x.Path)));

// Output:
// dir1/test.0
// dir1/subdir/test.1

Etkilenen API'ler