Enumerazione del percorso della directory corrente dell'unità
Le voci del file system ottenute usando un argomento path nella forma della directory corrente di un'unità, ad esempio C:
, sono state formate erroneamente combinando directory path + separator + entry name
. Per restituire il percorso corretto per le voci, il separatore non viene più aggiunto in presenza di questi percorsi.
Comportamento precedente
In precedenza, era stato aggiunto un carattere separatore in modo che le voci del file system enumerate apparissero nella radice dell'unità.
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);
}
L'esecuzione di questo frammento di codice generava quindi l'output seguente.
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
Nuovo comportamento
L'esecuzione dello stesso frammento di codice in .NET 9 e versioni successive produce un output senza un carattere separatore in ogni percorso.
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
Versione introdotta
.NET 8
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Gli utenti avevano segnalato che il comportamento precedente non era corretto. Si trattava anche di una regressione da .NET Framework.
Azione consigliata
Per gli utenti Windows che si basano sull'enumerazione di percorsi come C:
si consiglia di prendere nuovamente in considerazione le operazioni di I/O dell'applicazione. Si tratta di uno scenario insolito che probabilmente non verrà usato in un ambiente di produzione. La maggior parte degli utenti che desiderano enumerare la directory corrente usa invece Environment.CurrentDirectory.
API interessate
- System.IO.Directory.EnumerateFiles
- System.IO.Directory.EnumerateDirectories
- System.IO.Directory.EnumerateFileSystemEntries
- System.IO.Directory.GetFiles
- System.IO.Directory.GetDirectories
- System.IO.Directory.GetFileSystemEntries
- System.IO.DirectoryInfo.EnumerateFiles
- System.IO.DirectoryInfo.EnumerateDirectories
- System.IO.DirectoryInfo.EnumerateFileSystemInfos
- System.IO.DirectoryInfo.GetFiles
- System.IO.DirectoryInfo.GetDirectories
- System.IO.DirectoryInfo.GetFileSystemInfos
- FileSystemEnumerable<TResult>(String, FileSystemEnumerable<TResult>.FindTransform, EnumerationOptions)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per