Advertisement
Guest User

Filedirsearcher By Elektro old LINQ version

a guest
Feb 14th, 2015
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 9.99 KB | None | 0 0
  1. ' ***********************************************************************
  2. ' Author   : Elektro
  3. ' Modified : 09-December-2014
  4. ' ***********************************************************************
  5. ' <copyright file="FileFolderSearcher.vb" company="Elektro Studios">
  6. '     Copyright (c) Elektro Studios. All rights reserved.
  7. ' </copyright>
  8. ' ***********************************************************************
  9.  
  10. #Region " Usage Examples "
  11.  
  12. ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.AllDirectories)
  13. '
  14. ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExt:="dll")
  15. ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExts:={"dll", "exe"})
  16. '
  17. ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExt:="dll", keyWord:="win", ignoreCase:=True)
  18. ' Dim Files As List(Of IO.FileInfo) = FileSearcher.GetFiles(Folder:="C:\Windows\System32", recursivity:=SearchOption.TopDirectoryOnly, fileExts:={"dll", "exe"}, keyWord:="sys", ignoreCase:=True)
  19.  
  20. #End Region
  21.  
  22. #Region " Option Statements "
  23.  
  24. Option Explicit On
  25. Option Strict On
  26. Option Infer Off
  27.  
  28. #End Region
  29.  
  30. #Region " Imports "
  31.  
  32. Imports System.IO
  33.  
  34. #End Region
  35.  
  36. #Region " File Searcher "
  37.  
  38.     ''' <summary>
  39.     ''' Search for files.
  40.     ''' </summary>
  41.     Public NotInheritable Class FileFolderSearcher
  42.  
  43.         ''' <summary>
  44.         ''' Retrieves all the files inside a directory.
  45.         ''' </summary>
  46.         ''' <param name="Folder">Indicates the directory to search files.</param>
  47.         ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
  48.         ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
  49.         Public Shared Function GetFiles(ByVal folder As String,
  50.                                         ByVal recursivity As SearchOption) As List(Of FileInfo)
  51.  
  52.             Return (
  53.                     From File As String In Directory.GetFiles(folder, "*", recursivity)
  54.                     Select New FileInfo(File)
  55.                    ).ToList
  56.  
  57.         End Function
  58.  
  59.         ''' <summary>
  60.         ''' Retrieves the files inside a directory,
  61.         ''' containing the specified file extension.
  62.         ''' </summary>
  63.         ''' <param name="Folder">Indicates the directory to search files.</param>
  64.         ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
  65.         ''' <param name="FileExt">Indicates the file extension to match.</param>
  66.         ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
  67.         Public Shared Function GetFiles(ByVal folder As String,
  68.                                         ByVal recursivity As SearchOption,
  69.                                         ByVal fileExt As String) As List(Of FileInfo)
  70.  
  71.             Return (
  72.                     From File As String In Directory.GetFiles(folder, "*" & fileExt, recursivity)
  73.                     Select New FileInfo(File)
  74.                    ).ToList
  75.  
  76.         End Function
  77.  
  78.     ''' <summary>
  79.     ''' Retrieves the files inside a directory,
  80.     ''' containing the specified file extensions.
  81.     ''' </summary>
  82.     ''' <param name="folderPath">The directory path where to search files.</param>
  83.     ''' <param name="fileExts">The file extensions to match.</param>
  84.     ''' <param name="searchOption">The searching mode.</param>
  85.     ''' <returns>IEnumerable(Of FileInfo).</returns>
  86.     Public Shared Function GetFiles(ByVal folderPath As String,
  87.                                     ByVal fileExts As IEnumerable(Of String),
  88.                                     ByVal searchOption As SearchOption) As IEnumerable(Of FileInfo)
  89.  
  90.         ' Set all the file extensions to lower-case and
  91.         ' Remove empty file extensions and
  92.         ' Remove "*" and "." chars from beginning of the file extension.
  93.         fileExts = From fileExt As String In fileExts
  94.                    Where Not String.IsNullOrEmpty(fileExt)
  95.                    Select fileExt.TrimStart({"*"c, "."c, " "c}).TrimEnd.ToLower
  96.  
  97.         Return From filePath As String In Directory.GetFiles(folderPath, "*", searchOption)
  98.                Where If(Not String.IsNullOrEmpty(Path.GetExtension(filePath)),
  99.                         fileExts.Contains(Path.GetExtension(filePath).Substring(1).ToLower),
  100.                         Nothing)
  101.                Select New FileInfo(filePath)
  102.  
  103.     End Function
  104.  
  105.         ''' <summary>
  106.         ''' Retrieves the files inside a directory,
  107.         ''' containing the specified file extension,
  108.         ''' and containing the specified keyword in the filename.
  109.         ''' </summary>
  110.         ''' <param name="Folder">Indicates the directory to search files.</param>
  111.         ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
  112.         ''' <param name="FileExt">Indicates the file extension to match.</param>
  113.         ''' <param name="KeyWord">Indicates a keyword to match on the filenames.</param>
  114.         ''' <param name="IgnoreCase">Indicates the CaseSensitivity of the KeyWord match.</param>
  115.         ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
  116.         Public Shared Function GetFiles(ByVal folder As String,
  117.                                         ByVal recursivity As SearchOption,
  118.                                         ByVal fileExt As String,
  119.                                         ByVal keyWord As String,
  120.                                         Optional ByVal ignoreCase As Boolean = False) As List(Of FileInfo)
  121.  
  122.             Return (
  123.                     From File As String In Directory.GetFiles(folder, "*" & fileExt, recursivity)
  124.                     Where If(ignoreCase,
  125.                              Path.GetFileNameWithoutExtension(File).ToLower.Contains(keyWord.ToLower),
  126.                              Path.GetFileNameWithoutExtension(File).Contains(keyWord))
  127.                     Select New FileInfo(File)
  128.                    ).ToList
  129.  
  130.         End Function
  131.  
  132.         ''' <summary>
  133.         ''' Retrieves the files inside a directory,
  134.         ''' containing the specified file extensions,
  135.         ''' and containing the specified keyword in the filename.
  136.         ''' </summary>
  137.         ''' <param name="Folder">Indicates the directory to search files.</param>
  138.         ''' <param name="Recursivity">Indicates the subdirectory recursivity mode.</param>
  139.         ''' <param name="FileExts">Indicates the file extensions to match.</param>
  140.         ''' <param name="KeyWord">Indicates a keyword to match on the filenames.</param>
  141.         ''' <param name="IgnoreCase">Indicates the CaseSensitivity of the KeyWord match.</param>
  142.         ''' <returns>System.Collections.Generic.List(Of System.IO.FileInfo).</returns>
  143.         Public Shared Function GetFiles(ByVal folder As String,
  144.                                         ByVal recursivity As SearchOption,
  145.                                         ByVal fileExts As String(),
  146.                                         ByVal keyWord As String,
  147.                                         Optional ByVal ignoreCase As Boolean = False) As List(Of FileInfo)
  148.  
  149.             ' Set all the file extensions to lower-case.
  150.             fileExts = (
  151.                         From FileExt As String In fileExts
  152.                         Where Not String.IsNullOrEmpty(FileExt)
  153.                         Select FileExt.ToLower()
  154.                         Distinct
  155.                        ).ToArray
  156.  
  157.             Return (
  158.                     From File As String In Directory.GetFiles(folder, "*", recursivity)
  159.                     Where If(Not String.IsNullOrEmpty(Path.GetExtension(File)),
  160.                              fileExts.Contains(Path.GetExtension(File).Substring(1).ToLower),
  161.                              False)
  162.                     Where If(ignoreCase,
  163.                             Path.GetFileNameWithoutExtension(File).ToLower.Contains(keyWord.ToLower),
  164.                             Path.GetFileNameWithoutExtension(File).Contains(keyWord))
  165.                     Select New FileInfo(File)
  166.                     ).ToList
  167.  
  168.         End Function
  169.  
  170.         ''' <summary>
  171.         ''' Retrieves all the folders inside a directory.
  172.         ''' </summary>
  173.         ''' <param name="folder">Indicates the directory to search folders.</param>
  174.         ''' <param name="recursivity">Indicates the subdirectory recursivity mode.</param>
  175.         ''' <returns>System.Collections.Generic.List(Of System.IO.DirectoryInfo).</returns>
  176.         Public Shared Function GetFolders(ByVal folder As String,
  177.                                           ByVal recursivity As SearchOption) As List(Of DirectoryInfo)
  178.  
  179.             Return (
  180.                     From dir As String In Directory.GetDirectories(folder, "*", recursivity)
  181.                     Select New DirectoryInfo(dir)
  182.                    ).ToList
  183.  
  184.         End Function
  185.  
  186.         ''' <summary>
  187.         ''' Retrieves the folders inside a directory,
  188.         ''' containing the specified name pattern.
  189.         ''' </summary>
  190.         ''' <param name="folder">Indicates the directory to search files.</param>
  191.         ''' <param name="recursivity">Indicates the subdirectory recursivity mode.</param>
  192.         ''' <param name="namePattern">Indicates the pattern to match.</param>
  193.         ''' <returns>System.Collections.Generic.List(Of System.IO.DirectoryInfo).</returns>
  194.         Public Shared Function GetFolders(ByVal folder As String,
  195.                                           ByVal recursivity As SearchOption,
  196.                                           ByVal namePattern As String) As List(Of DirectoryInfo)
  197.  
  198.             Return (
  199.                     From dir As String In Directory.GetDirectories(folder, "*" & namePattern, recursivity)
  200.                     Select New DirectoryInfo(dir)
  201.                    ).ToList
  202.  
  203.         End Function
  204.  
  205.     End Class
  206.  
  207. #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement