Files - NKS0011

Use Listing.GetFileSystemEntries()

This analyzer provides the following strings:

Context
String

Error List

Caller uses Directory.GetFileSystemEntries instead of Listing.GetFileSystemEntries()

Suggestion Box

Use Listing.GetFileSystemEntries() instead of Directory.GetFileSystemEntries

Description

Alternatively, Listing.GetFileSystemEntries() returns a list of paths to files or folders with better support for patterns. You can also use GetFilesystemEntriesRegex() for regular expression support.

Extended Description

This code analyzer detects the usage of GetFileSystemEntries from the standard Directory class found in the System.IO namespace.

The GetFileSystemEntries() from the Directory class gives you a randomly-sorted list of files and directories, which may not be convenient for TUI applications, such as the interactive TUI.

CreateList() takes care of that by sorting directories and files in an alphabetical order by putting the directories first before the files. This way, this listing can then be used for interactive applications.

Analysis Comparison

To get a brief insight about how this analyzer works, compare the two code blocks shown to you below:

Before the fix

Somewhere in your mod code...
public static void MyFunction()
{
    string[] files = Directory.GetFileSystemEntries(PathsManagement.AppDataPath);
}

After the fix

Somewhere in your mod code...
public static void MyFunction()
{
    string[] files = Listing.GetFileSystemEntries(PathsManagement.AppDataPath);
}

Suppression

You can suppress this suggestion by including it in the appropriate place, whichever is convenient.

For more information about how to suppress any warning issued by the Nitrocid analyzer, visit the below page:

Recommendation

We recommend that every caller which use this function use the recommended abovementioned method.