Udostępnij za pośrednictwem


Bieżąca wyliczenie ścieżki katalogu dysku

Wpisy systemu plików uzyskane przy użyciu argumentu ścieżki w kształcie "bieżącego katalogu dysku", na przykład , C:zostały niepoprawnie utworzone przez połączenie directory path + separator + entry name. Aby zwrócić poprawną ścieżkę dla wpisów, separator nie jest już dodawany z takimi ścieżkami.

Poprzednie zachowanie

Wcześniej dodano znak separatora, tak aby wyliczone wpisy systemu plików znajdowały się w katalogu głównym dysku.

string pathToEnumerate = "C:";

Console.WriteLine($"Full path of \"{pathToEnumerate}\" is {Path.GetFullPath(pathToEnumerate)}.");
Path.GetFullPath(pathToEnumerate);

Console.WriteLine($"Enumerating files and folders in \"{pathToEnumerate}\".");
foreach (string entry in Directory.GetFileSystemEntries(pathToEnumerate))
{
    Console.WriteLine(entry);
}

Dane wyjściowe z uruchamiania tego fragmentu kodu były następujące.

Full path of "C:" is C:\Users\myalias\consoleapps\Program

Enumerating files and folders in "C:".
C:\Program.csproj
C:\Program.sln
C:\bin
C:\obj
C:\Program.cs

Nowe zachowanie

Uruchomienie tego samego fragmentu kodu na platformie .NET 8 i nowszych wersjach powoduje wygenerowanie danych wyjściowych bez znaku separatora w każdej ścieżce.

Full path of "C:" is C:\Users\myalias\consoleapps\Program.

Enumerating files and folders in "C:".
C:Program.csproj
C:Program.sln
C:bin
C:obj
C:Program.cs

Wprowadzona wersja

.NET 8

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Użytkownicy zgłosili, że poprzednie zachowanie było nieprawidłowe. Była to również regresja z programu .NET Framework.

Jeśli jesteś użytkownikiem systemu Windows, który opiera się na wyliczaniu ścieżek, takich jak C:, należy ponownie ocenić operacje we/wy aplikacji. Jest to nietypowy scenariusz, który prawdopodobnie nie będzie używany w środowisku produkcyjnym. Większość użytkowników, którzy chcą zamiast tego wyliczyć bieżący katalog Environment.CurrentDirectory .

Dotyczy interfejsów API