Table of Contents

Class FSGetFiles

Namespace
SunamoGetFiles
Assembly
SunamoGetFiles.dll

Provides methods for getting files from the file system

public class FSGetFiles
Inheritance
FSGetFiles
Inherited Members
Extension Methods

Methods

AllFilesInFolders(ILogger, IList<string>, IList<string>, SearchOption, GetFilesEveryFolderArgs?)

Gets all files from multiple folders with specified extensions

public static List<string> AllFilesInFolders(ILogger logger, IList<string> folders, IList<string> extensions, SearchOption searchOption, GetFilesEveryFolderArgs? args = null)

Parameters

logger ILogger

Logger instance

folders IList<string>

List of folder paths to search

extensions IList<string>

List of file extensions

searchOption SearchOption

Search option (top directory only or all directories)

args GetFilesEveryFolderArgs

Optional arguments for file search

Returns

List<string>

List of all file paths from all folders with specified extensions

FilesOfExtension(ILogger, string, string)

Gets files with specified extension from folder (non-recursive)

public static List<string> FilesOfExtension(ILogger logger, string folder, string extension)

Parameters

logger ILogger

Logger instance

folder string

Folder path to search

extension string

File extension without dot (e.g., "txt", "cs")

Returns

List<string>

List of file paths with specified extension

FilesOfExtensions(ILogger, string, GetFilesEveryFolderArgs, params string[])

Gets files grouped by extensions. Returns dictionary where keys are normalized extensions. Extensions with zero files will not be included in the dictionary. To get all extensions in a folder, use FS.AllExtensionsInFolders method.

public static Dictionary<string, List<string>> FilesOfExtensions(ILogger logger, string folder, GetFilesEveryFolderArgs args, params string[] extensionsWithDot)

Parameters

logger ILogger

Logger instance

folder string

Folder path to search

args GetFilesEveryFolderArgs

Optional arguments for file search

extensionsWithDot string[]

Extensions to search for (with dot, e.g., ".txt", ".cs")

Returns

Dictionary<string, List<string>>

Dictionary where keys are normalized extensions and values are lists of file paths

FilesOfExtensionsArray(string, List<string>)

Gets files with any of specified extensions from folder recursively

public static List<string> FilesOfExtensionsArray(string folder, List<string> extensions)

Parameters

folder string

Folder path to search

extensions List<string>

List of extensions to search for

Returns

List<string>

List of file paths with any of specified extensions

FilesWhichContainsAll(ILogger, object, string, IList<string>)

Gets files which contain all specified strings in their content

public static Task<List<string>> FilesWhichContainsAll(ILogger logger, object source, string mask, IList<string> list)

Parameters

logger ILogger

Logger instance

source object

Source folder path or list of file paths

mask string

File mask pattern

list IList<string>

List of strings that must all be present in file content

Returns

Task<List<string>>

List of file paths that contain all specified strings

FilterByGetFilesArgs(List<string>, IEnumerable<string>, GetFilesEveryFolderArgs)

Filters file list according to GetFilesEveryFolderArgs settings

public static void FilterByGetFilesArgs(List<string> list, IEnumerable<string> folders, GetFilesEveryFolderArgs args)

Parameters

list List<string>

List of file paths to filter

folders IEnumerable<string>

Folders to process

args GetFilesEveryFolderArgs

Arguments containing filter settings

GetFileInfosOfExtensions(string, SearchOption, params string[])

Gets FileInfo array for files with specified extensions

public static FileInfo[] GetFileInfosOfExtensions(string folder, SearchOption searchOption, params string[] extensions)

Parameters

folder string

Folder path to search

searchOption SearchOption

Search option (top directory only or all directories)

extensions string[]

Extensions to search for

Returns

FileInfo[]

Array of FileInfo objects

GetFilesAsync(ILogger, string, string, SearchOption, GetFilesEveryFolderArgs?)

Gets files from specified folder(s) with mask and search options. When Access Denied exception occurs, use GetFilesEveryFolder which searches in every subfolder.

public static Task<List<string>> GetFilesAsync(ILogger logger, string folder, string mask, SearchOption searchOption, GetFilesEveryFolderArgs? args = null)

Parameters

logger ILogger

Logger instance

folder string

Folder path (can be semicolon-delimited for multiple folders)

mask string

File mask (use GetFilesOfExtensions for multiple extensions)

searchOption SearchOption

Search option (top directory only or all directories)

args GetFilesEveryFolderArgs

Optional arguments for file search

Returns

Task<List<string>>

List of file paths

GetFilesEveryFolder(ILogger, string, string, bool, GetFilesEveryFolderArgs?)

Gets files from every folder

public static List<string> GetFilesEveryFolder(ILogger logger, string folder, string mask, bool isRecursive, GetFilesEveryFolderArgs? args = null)

Parameters

logger ILogger

Logger instance

folder string

Root folder to search

mask string

File mask (supports semicolon-separated masks)

isRecursive bool

Whether to search recursively

args GetFilesEveryFolderArgs

Optional arguments for file search

Returns

List<string>

List of file paths

GetFilesEveryFolder(ILogger, string, string, SearchOption, GetFilesEveryFolderArgs?)

Gets files from every folder with specified search options

public static List<string> GetFilesEveryFolder(ILogger logger, string folder, string mask = "*", SearchOption searchOption = SearchOption.AllDirectories, GetFilesEveryFolderArgs? args = null)

Parameters

logger ILogger

Logger instance

folder string

Root folder to search

mask string

File mask (supports semicolon-separated masks)

searchOption SearchOption

Search option (top directory only or all directories)

args GetFilesEveryFolderArgs

Optional arguments for file search

Returns

List<string>

List of file paths

GetFilesOfExtensions(ILogger, string, SearchOption, params string[])

Gets files with any of specified extensions

public static List<string> GetFilesOfExtensions(ILogger logger, string folder, SearchOption searchOption, params string[] extensions)

Parameters

logger ILogger

Logger instance

folder string

Folder path to search

searchOption SearchOption

Search option (top directory only or all directories)

extensions string[]

Extensions to search for

Returns

List<string>

List of file paths with any of specified extensions

GetFilesSize(List<string>)

Gets total size of files in human-readable format

public static string GetFilesSize(List<string> files)

Parameters

files List<string>

List of file paths

Returns

string

Total size in automatically determined unit (B, KB, MB, GB, TB)

GetFilesSizes(ILogger, List<string>)

Gets file sizes for a list of files

public static List<long> GetFilesSizes(ILogger logger, List<string> files)

Parameters

logger ILogger

Logger instance

files List<string>

List of file paths

Returns

List<long>

List of file sizes in bytes

GetFilesWithContentInDictionary(ILogger, string, string, SearchOption)

Gets files with their content in dictionary

public static Task<Dictionary<string, string>> GetFilesWithContentInDictionary(ILogger logger, string folder, string mask, SearchOption searchOption)

Parameters

logger ILogger

Logger instance

folder string

Folder path to search

mask string

File mask pattern

searchOption SearchOption

Search option (top directory only or all directories)

Returns

Task<Dictionary<string, string>>

Dictionary where keys are file paths and values are file contents