Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' ***********************************************************************
- ' Author : Elektro
- ' Modified : 09-December-2014
- ' ***********************************************************************
- ' <copyright file="FileFolderSearcher.vb" company="Elektro Studios">
- ' Copyright (c) Elektro Studios. All rights reserved.
- ' </copyright>
- ' ***********************************************************************
- #Region " Usage Examples "
- ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.AllDirectories)
- '
- ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExt:="dll")
- ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExts:={"dll", "exe"})
- '
- ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExt:="dll", keyWord:="win", ignoreCase:=True)
- ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExts:={"dll", "exe"}, keyWord:="sys", ignoreCase:=True)
- #End Region
- #Region " Option Statements "
- Option Explicit On
- Option Strict On
- Option Infer Off
- #End Region
- #Region " Imports "
- Imports System.IO
- #End Region
- #Region " File Searcher "
- ''' <summary>
- ''' Search for files.
- ''' </summary>
- Public NotInheritable Class FileFolderSearcher
- ''' <summary>
- ''' Retrieves all the files inside a directory.
- ''' </summary>
- ''' <param name="Folder">Indicates the directory to search files.</param>
- ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
- ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
- Public Shared Function GetFiles(ByVal folder As String,
- ByVal recursivity As SearchOption) As List(Of FileInfo)
- Return (
- From File As String In Directory.GetFiles(folder, "*", recursivity)
- Select New FileInfo(File)
- ).ToList
- End Function
- ''' <summary>
- ''' Retrieves the files inside a directory,
- ''' containing the specified file extension.
- ''' </summary>
- ''' <param name="Folder">Indicates the directory to search files.</param>
- ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
- ''' <param name="FileExt">Indicates the file extension to match.</param>
- ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
- Public Shared Function GetFiles(ByVal folder As String,
- ByVal recursivity As SearchOption,
- ByVal fileExt As String) As List(Of FileInfo)
- Return (
- From File As String In Directory.GetFiles(folder, "*" & fileExt, recursivity)
- Select New FileInfo(File)
- ).ToList
- End Function
- ''' <summary>
- ''' Retrieves the files inside a directory,
- ''' containing the specified file extensions.
- ''' </summary>
- ''' <param name="folderPath">The directory path where to search files.</param>
- ''' <param name="fileExts">The file extensions to match.</param>
- ''' <param name="searchOption">The searching mode.</param>
- ''' <returns>IEnumerable(Of FileInfo).</returns>
- Public Shared Function GetFiles(ByVal folderPath As String,
- ByVal fileExts As IEnumerable(Of String),
- ByVal searchOption As SearchOption) As IEnumerable(Of FileInfo)
- ' Set all the file extensions to lower-case and
- ' Remove empty file extensions and
- ' Remove "*" and "." chars from beginning of the file extension.
- fileExts = From fileExt As String In fileExts
- Where Not String.IsNullOrEmpty(fileExt)
- Select fileExt.TrimStart({"*"c, "."c, " "c}).TrimEnd.ToLower
- Return From filePath As String In Directory.GetFiles(folderPath, "*", searchOption)
- Where If(Not String.IsNullOrEmpty(Path.GetExtension(filePath)),
- fileExts.Contains(Path.GetExtension(filePath).Substring(1).ToLower),
- Nothing)
- Select New FileInfo(filePath)
- End Function
- ''' <summary>
- ''' Retrieves the files inside a directory,
- ''' containing the specified file extension,
- ''' and containing the specified keyword in the filename.
- ''' </summary>
- ''' <param name="Folder">Indicates the directory to search files.</param>
- ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
- ''' <param name="FileExt">Indicates the file extension to match.</param>
- ''' <param name="KeyWord">Indicates a keyword to match on the filenames.</param>
- ''' <param name="IgnoreCase">Indicates the CaseSensitivity of the KeyWord match.</param>
- ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
- Public Shared Function GetFiles(ByVal folder As String,
- ByVal recursivity As SearchOption,
- ByVal fileExt As String,
- ByVal keyWord As String,
- Optional ByVal ignoreCase As Boolean = False) As List(Of FileInfo)
- Return (
- From File As String In Directory.GetFiles(folder, "*" & fileExt, recursivity)
- Where If(ignoreCase,
- Path.GetFileNameWithoutExtension(File).ToLower.Contains(keyWord.ToLower),
- Path.GetFileNameWithoutExtension(File).Contains(keyWord))
- Select New FileInfo(File)
- ).ToList
- End Function
- ''' <summary>
- ''' Retrieves the files inside a directory,
- ''' containing the specified file extensions,
- ''' and containing the specified keyword in the filename.
- ''' </summary>
- ''' <param name="Folder">Indicates the directory to search files.</param>
- ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
- ''' <param name="FileExts">Indicates the file extensions to match.</param>
- ''' <param name="KeyWord">Indicates a keyword to match on the filenames.</param>
- ''' <param name="IgnoreCase">Indicates the CaseSensitivity of the KeyWord match.</param>
- ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
- Public Shared Function GetFiles(ByVal folder As String,
- ByVal recursivity As SearchOption,
- ByVal fileExts As String(),
- ByVal keyWord As String,
- Optional ByVal ignoreCase As Boolean = False) As List(Of FileInfo)
- ' Set all the file extensions to lower-case.
- fileExts = (
- From FileExt As String In fileExts
- Where Not String.IsNullOrEmpty(FileExt)
- Select FileExt.ToLower()
- Distinct
- ).ToArray
- Return (
- From File As String In Directory.GetFiles(folder, "*", recursivity)
- Where If(Not String.IsNullOrEmpty(Path.GetExtension(File)),
- fileExts.Contains(Path.GetExtension(File).Substring(1).ToLower),
- False)
- Where If(ignoreCase,
- Path.GetFileNameWithoutExtension(File).ToLower.Contains(keyWord.ToLower),
- Path.GetFileNameWithoutExtension(File).Contains(keyWord))
- Select New FileInfo(File)
- ).ToList
- End Function
- ''' <summary>
- ''' Retrieves all the folders inside a directory.
- ''' </summary>
- ''' <param name="folder">Indicates the directory to search folders.</param>
- ''' <param name="recursivity">Indicates the subdirectory recursivity mode.</param>
- ''' <returns>System.Collections.Generic.List(Of System.IO.DirectoryInfo).</returns>
- Public Shared Function GetFolders(ByVal folder As String,
- ByVal recursivity As SearchOption) As List(Of DirectoryInfo)
- Return (
- From dir As String In Directory.GetDirectories(folder, "*", recursivity)
- Select New DirectoryInfo(dir)
- ).ToList
- End Function
- ''' <summary>
- ''' Retrieves the folders inside a directory,
- ''' containing the specified name pattern.
- ''' </summary>
- ''' <param name="folder">Indicates the directory to search files.</param>
- ''' <param name="recursivity">Indicates the subdirectory recursivity mode.</param>
- ''' <param name="namePattern">Indicates the pattern to match.</param>
- ''' <returns>System.Collections.Generic.List(Of System.IO.DirectoryInfo).</returns>
- Public Shared Function GetFolders(ByVal folder As String,
- ByVal recursivity As SearchOption,
- ByVal namePattern As String) As List(Of DirectoryInfo)
- Return (
- From dir As String In Directory.GetDirectories(folder, "*" & namePattern, recursivity)
- Select New DirectoryInfo(dir)
- ).ToList
- End Function
- End Class
- #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement