diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/program.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program.cs index e0561d13d8f..d242f40b07f 100644 --- a/snippets/csharp/System.IO/Directory/EnumerateFiles/program.cs +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program.cs @@ -3,15 +3,14 @@ using System.IO; using System.Linq; -class Program +partial class Example2 { - static void Main(string[] args) + static void SearchOptionExample() { try { // Set a variable to the My Documents path. - string docPath = - Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); + string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories) from line in File.ReadLines(file) @@ -26,7 +25,8 @@ where line.Contains("Microsoft") { Console.WriteLine($"{f.File}\t{f.Line}"); } - Console.WriteLine($"{files.Count().ToString()} files found."); + + Console.WriteLine($"{files.Count()} files found."); } catch (UnauthorizedAccessException uAEx) { diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/program1.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program1.cs index fb7657d3127..597dbc5ce61 100644 --- a/snippets/csharp/System.IO/Directory/EnumerateFiles/program1.cs +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program1.cs @@ -4,22 +4,22 @@ using System.Linq; using System.IO; -class Program +partial class Example2 { - static void Main(string[] args) + static void OneStringExample() { try { // LINQ query for all files containing the word 'Europe'. - var files = from file in - Directory.EnumerateFiles(@"\\archives1\library\") - where file.ToLower().Contains("europe") - select file; + var files = from file in Directory.EnumerateFiles(@"\\archives1\library\") + where file.ToLower().Contains("europe") + select file; foreach (var file in files) { Console.WriteLine("{0}", file); } + Console.WriteLine("{0} files found.", files.Count().ToString()); } catch (UnauthorizedAccessException UAEx) diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/program2.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program2.cs index 19ed77b06bb..3c4eaefa4db 100644 --- a/snippets/csharp/System.IO/Directory/EnumerateFiles/program2.cs +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program2.cs @@ -3,24 +3,25 @@ using System.Linq; using System.IO; -class Program +partial class Example2 { - static void Main(string[] args) + static void TwoStringsExample() { try { // LINQ query for all .txt files containing the word 'Europe'. var files = from file in Directory.EnumerateFiles(@"\\archives1\library\", "*.txt") - where file.ToLower().Contains("europe") - select file; + where file.ToLower().Contains("europe") + select file; foreach (var file in files) { Console.WriteLine("{0}", file); } + Console.WriteLine("{0} files found.", files.Count().ToString()); } - + catch (UnauthorizedAccessException UAEx) { Console.WriteLine(UAEx.Message); diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs new file mode 100644 index 00000000000..e189e19ae35 --- /dev/null +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs @@ -0,0 +1,50 @@ +// +using System; +using System.IO; +using System.Linq; + +partial class Example2 +{ + static void EnumerationOptionsExample() + { + try + { + // Set a variable to the My Documents path. + string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); + + // Set the options for the enumeration. + var options = new EnumerationOptions + { + IgnoreInaccessible = true, + MatchCasing = MatchCasing.CaseInsensitive, + MatchType = MatchType.Simple, + RecurseSubdirectories = true + }; + + var files = from file in Directory.EnumerateFiles(docPath, "*.txt", options) + from line in File.ReadLines(file) + where line.Contains("Microsoft") + select new + { + File = file, + Line = line + }; + + foreach (var f in files) + { + Console.WriteLine($"{f.File}\t{f.Line}"); + } + + Console.WriteLine($"{files.Count()} files found."); + } + catch (PathTooLongException pathEx) + { + Console.WriteLine(pathEx.Message); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } +} +// diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs new file mode 100644 index 00000000000..6169a46c3ab --- /dev/null +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs @@ -0,0 +1,35 @@ +// +using System; +using System.IO; + +partial class Example1 +{ + static void EnumerationOptionsExample() + { + string sourceDirectory = @"C:\current"; + string archiveDirectory = @"C:\archive"; + + var options = new EnumerationOptions + { + MatchCasing = MatchCasing.CaseInsensitive, + MatchType = MatchType.Simple, + RecurseSubdirectories = true + }; + + try + { + var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", options); + + foreach (string currentFile in txtFiles) + { + string fileName = currentFile.Substring(sourceDirectory.Length + 1); + Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } +} +// diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj b/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj new file mode 100644 index 00000000000..fc3f09ab482 --- /dev/null +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj @@ -0,0 +1,8 @@ + + + + Library + net9.0 + + + diff --git a/snippets/csharp/System.IO/Directory/Overview/class2.cs b/snippets/csharp/System.IO/Directory/Overview/class2.cs index 09da814f024..1a98db40ade 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class2.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class2.cs @@ -2,30 +2,27 @@ using System; using System.IO; -namespace ConsoleApplication +partial class Example1 { - class Program + static void TwoStringsExample() { - static void Main(string[] args) - { - string sourceDirectory = @"C:\current"; - string archiveDirectory = @"C:\archive"; + string sourceDirectory = @"C:\current"; + string archiveDirectory = @"C:\archive"; - try - { - var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt"); + try + { + var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt"); - foreach (string currentFile in txtFiles) - { - string fileName = currentFile.Substring(sourceDirectory.Length + 1); - Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); - } - } - catch (Exception e) + foreach (string currentFile in txtFiles) { - Console.WriteLine(e.Message); + string fileName = currentFile.Substring(sourceDirectory.Length + 1); + Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); } } + catch (Exception e) + { + Console.WriteLine(e.Message); + } } } // diff --git a/snippets/csharp/System.IO/Directory/Overview/class3.cs b/snippets/csharp/System.IO/Directory/Overview/class3.cs index 80a39ab2ed8..1381b39e0d5 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class3.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class3.cs @@ -3,29 +3,27 @@ using System.IO; using System.Linq; -namespace ConsoleApplication +partial class Program { - class Program + static void EnumerateFilesExample() { - static void Main(string[] args) - { - string archiveDirectory = @"C:\archive"; + string archiveDirectory = @"C:\archive"; - var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) - from line in File.ReadLines(retrievedFile) - where line.Contains("Example") - select new - { - File = retrievedFile, - Line = line - }; + var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) + from line in File.ReadLines(retrievedFile) + where line.Contains("Example") + select new + { + File = retrievedFile, + Line = line + }; - foreach (var f in files) - { - Console.WriteLine("{0} contains {1}", f.File, f.Line); - } - Console.WriteLine("{0} lines found.", files.Count().ToString()); + foreach (var f in files) + { + Console.WriteLine("{0} contains {1}", f.File, f.Line); } + + Console.WriteLine("{0} lines found.", files.Count().ToString()); } } // diff --git a/snippets/csharp/System.IO/Directory/Overview/class4.cs b/snippets/csharp/System.IO/Directory/Overview/class4.cs index 11b36c08c23..2b523363267 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class4.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class4.cs @@ -2,30 +2,27 @@ using System; using System.IO; -namespace ConsoleApplication +partial class Example1 { - class Program + static void OneStringExample() { - static void Main(string[] args) - { - string sourceDirectory = @"C:\current"; - string archiveDirectory = @"C:\archive"; + string sourceDirectory = @"C:\current"; + string archiveDirectory = @"C:\archive"; - try - { - var txtFiles = Directory.EnumerateFiles(sourceDirectory); + try + { + var txtFiles = Directory.EnumerateFiles(sourceDirectory); - foreach (string currentFile in txtFiles) - { - string fileName = currentFile.Substring(sourceDirectory.Length + 1); - Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); - } - } - catch (Exception e) + foreach (string currentFile in txtFiles) { - Console.WriteLine(e.Message); + string fileName = currentFile.Substring(sourceDirectory.Length + 1); + Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); } } + catch (Exception e) + { + Console.WriteLine(e.Message); + } } } // diff --git a/snippets/csharp/System.IO/Directory/Overview/class5.cs b/snippets/csharp/System.IO/Directory/Overview/class5.cs index 1b7744f9e02..a1dac43a3c6 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class5.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class5.cs @@ -2,30 +2,27 @@ using System; using System.IO; -namespace ConsoleApplication +partial class Example1 { - class Program + static void SearchOptionExample() { - static void Main(string[] args) - { - string sourceDirectory = @"C:\current"; - string archiveDirectory = @"C:\archive"; + string sourceDirectory = @"C:\current"; + string archiveDirectory = @"C:\archive"; - try - { - var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories); + try + { + var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories); - foreach (string currentFile in txtFiles) - { - string fileName = currentFile.Substring(sourceDirectory.Length + 1); - Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); - } - } - catch (Exception e) + foreach (string currentFile in txtFiles) { - Console.WriteLine(e.Message); + string fileName = currentFile.Substring(sourceDirectory.Length + 1); + Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)); } } + catch (Exception e) + { + Console.WriteLine(e.Message); + } } } -// \ No newline at end of file +// diff --git a/snippets/csharp/System.IO/Directory/Overview/class6.cs b/snippets/csharp/System.IO/Directory/Overview/class6.cs index c0df9451ce2..292a427694f 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class6.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class6.cs @@ -2,23 +2,20 @@ using System; using System.IO; -namespace ConsoleApplication +partial class Program { - class Program + static void DirectoryMoveExample() { - static void Main(string[] args) - { - string sourceDirectory = @"C:\source"; - string destinationDirectory = @"C:\destination"; + string sourceDirectory = @"C:\source"; + string destinationDirectory = @"C:\destination"; - try - { - Directory.Move(sourceDirectory, destinationDirectory); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } + try + { + Directory.Move(sourceDirectory, destinationDirectory); + } + catch (Exception e) + { + Console.WriteLine(e.Message); } } } diff --git a/snippets/csharp/System.IO/Directory/Overview/class7.cs b/snippets/csharp/System.IO/Directory/Overview/class7.cs index 4dd568123fe..e2db49a8fa2 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class7.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class7.cs @@ -3,18 +3,15 @@ using System.IO; using System.Security.AccessControl; -namespace ConsoleApplication +partial class Program { - class Program + static void DirectorySecurityExample() { - static void Main(string[] args) - { - DirectorySecurity securityRules = new DirectorySecurity(); - securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow)); - securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow)); + DirectorySecurity securityRules = new DirectorySecurity(); + securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow)); + securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow)); - DirectoryInfo di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules); - } + DirectoryInfo di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules); } } // diff --git a/snippets/csharp/System.IO/Directory/Overview/project.csproj b/snippets/csharp/System.IO/Directory/Overview/project.csproj new file mode 100644 index 00000000000..0dc116f7a60 --- /dev/null +++ b/snippets/csharp/System.IO/Directory/Overview/project.csproj @@ -0,0 +1,8 @@ + + + + Exe + net48 + + + diff --git a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj index 7f314d88392..3b16766b39a 100644 --- a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj @@ -1,12 +1,14 @@ - Exe - net6.0 + Library + net9.0 + + - \ No newline at end of file + diff --git a/snippets/fsharp/System.IO/Directory/EnumerateFiles/program.fs b/snippets/fsharp/System.IO/Directory/EnumerateFiles/program.fs index f70938b61ed..6c9ac39b0f7 100644 --- a/snippets/fsharp/System.IO/Directory/EnumerateFiles/program.fs +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/program.fs @@ -1,4 +1,6 @@ -// +module program + +// open System open System.IO diff --git a/snippets/fsharp/System.IO/Directory/EnumerateFiles/program3.fs b/snippets/fsharp/System.IO/Directory/EnumerateFiles/program3.fs new file mode 100644 index 00000000000..e3cec311b05 --- /dev/null +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/program3.fs @@ -0,0 +1,35 @@ +module program3 + +// +open System +open System.IO + +try + // Set a variable to the My Documents path. + let docPath = + Environment.GetFolderPath Environment.SpecialFolder.MyDocuments + + // Set the options for the enumeration. + let options = new EnumerationOptions( + IgnoreInaccessible = true, + MatchCasing = MatchCasing.CaseInsensitive, + MatchType = MatchType.Simple, + RecurseSubdirectories = true + ) + + let files = + query { + for file in Directory.EnumerateFiles(docPath, "*.txt", options) do + for line in File.ReadLines file do + where (line.Contains "Microsoft") + select {| File = file; Line = line |} + } + + for f in files do + printfn $"{f.File}\t{f.Line}" + + printfn $"{Seq.length files} files found." +with +| :? PathTooLongException as pathEx -> printfn $"{pathEx.Message}" +| ex -> printfn $"{ex.Message}" +// diff --git a/snippets/fsharp/System.IO/Directory/EnumerateFiles/program4.fs b/snippets/fsharp/System.IO/Directory/EnumerateFiles/program4.fs new file mode 100644 index 00000000000..597476ee4d7 --- /dev/null +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/program4.fs @@ -0,0 +1,23 @@ +module program4 + +// +open System.IO + +let sourceDirectory = @"C:\current" +let archiveDirectory = @"C:\archive" + +let options = new EnumerationOptions( + MatchCasing = MatchCasing.CaseInsensitive, + MatchType = MatchType.Simple, + RecurseSubdirectories = true +) + +try + let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", options) + + for currentFile in txtFiles do + let fileName = currentFile.Substring(sourceDirectory.Length + 1) + Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)) +with ex -> + printfn $"{ex.Message}" +// diff --git a/snippets/fsharp/System.IO/Directory/Overview/class1.fs b/snippets/fsharp/System.IO/Directory/Overview/class1.fs index 75fd8b99265..0c488d905b0 100644 --- a/snippets/fsharp/System.IO/Directory/Overview/class1.fs +++ b/snippets/fsharp/System.IO/Directory/Overview/class1.fs @@ -1,4 +1,6 @@ -// +module class1 + +// // // // @@ -14,7 +16,7 @@ let printFileSystemEntries path = for str in directoryEntries do printfn $"{str}" - with + with | :? ArgumentNullException -> printfn "Path is a null reference." | :? SecurityException -> @@ -82,4 +84,4 @@ move "C:\\proof" "C:\\Temp" // // // -// \ No newline at end of file +// diff --git a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj index f38a7e6ad16..1cb9d812f3a 100644 --- a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj @@ -13,4 +13,4 @@ - \ No newline at end of file + diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module1.vb b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module1.vb index e206ccef3ce..4e63ee30082 100644 --- a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module1.vb +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module1.vb @@ -2,25 +2,26 @@ Imports System.IO Imports System.Linq -Module Module1 +Partial Class Example2 + Shared Sub OneStringExample() - Sub Main() Try ' LINQ query for all files containing the word 'Europe'. Dim files = From file In Directory.EnumerateFiles("\\archives1\library\") - Where file.ToLower().Contains("europe") + Where file.ToLower().Contains("europe") For Each file In files Console.WriteLine("{0}", file) Next + Console.WriteLine("{0} files found.", files.Count.ToString()) Catch UAEx As UnauthorizedAccessException Console.WriteLine(UAEx.Message) Catch PathEx As PathTooLongException Console.WriteLine(PathEx.Message) End Try - End Sub -End Module + End Sub +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module11.vb b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module11.vb index b68fc5ec976..e936fc37551 100644 --- a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module11.vb +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/module11.vb @@ -2,24 +2,25 @@ Imports System.IO Imports System.Linq -Module Module1 +Partial Class Example2 + Shared Sub TwoStringsExample() - Sub Main() Try ' LINQ query for all .txt files containing the word 'Europe'. Dim files = From file In Directory.EnumerateFiles("\\archives1\library\", "*.txt") - Where file.ToLower().Contains("europe") + Where file.ToLower().Contains("europe") For Each file In files Console.WriteLine("{0}", file) Next + Console.WriteLine("{0} files found.", files.Count.ToString()) Catch UAEx As UnauthorizedAccessException Console.WriteLine(UAEx.Message) Catch PathEx As PathTooLongException Console.WriteLine(PathEx.Message) End Try - End Sub -End Module + End Sub +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program.vb b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program.vb index 94f25510e84..110a90a59fa 100644 --- a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program.vb +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program.vb @@ -2,25 +2,28 @@ Imports System.IO Imports System.Xml.Linq -Module Module1 +Partial Class Example2 + Shared Sub SearchOptionExample() - Sub Main() Try Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories) From line In File.ReadLines(chkFile) Where line.Contains("Microsoft") Select New With {.curFile = chkFile, .curLine = line} For Each f In files - Console.WriteLine($"{f.File}\t{f.Line}") + Console.WriteLine($"{f.curFile}\t{f.curLine}") Next + Console.WriteLine($"{files.Count} files found.") Catch uAEx As UnauthorizedAccessException Console.WriteLine(uAEx.Message) Catch pathEx As PathTooLongException Console.WriteLine(pathEx.Message) End Try + End Sub -End Module +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb new file mode 100644 index 00000000000..fd83b6e832a --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb @@ -0,0 +1,41 @@ +' +Imports System.IO +Imports System.Xml.Linq + +Partial Class Example2 + Shared Sub EnumerationOptionsExample() + + Try + ' Set a variable to the My Documents Path. + Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + + ' Set the options for the enumeration. + Dim options As New EnumerationOptions() With { + .IgnoreInaccessible = True, + .MatchCasing = MatchCasing.CaseInsensitive, + .MatchType = MatchType.Simple, + .RecurseSubdirectories = True + } + + Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", options) + From line In File.ReadLines(chkFile) + Where line.Contains("Microsoft") + Select New With { + .curFile = chkFile, + .curLine = line + } + + For Each f In files + Console.WriteLine($"{f.curFile}\t{f.curLine}") + Next + + Console.WriteLine($"{files.Count} files found.") + Catch pathEx As PathTooLongException + Console.WriteLine(pathEx.Message) + Catch ex As Exception + Console.WriteLine(ex.Message) + End Try + + End Sub +End Class +' diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb new file mode 100644 index 00000000000..1e1873b9729 --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb @@ -0,0 +1,29 @@ +' +Imports System.IO + +Partial Class Example1 + Shared Sub EnumerationOptionsExample() + + Dim sourceDirectory As String = "C:\current" + Dim archiveDirectory As String = "C:\archive" + + Dim options As New EnumerationOptions() With { + .MatchCasing = MatchCasing.CaseInsensitive, + .MatchType = MatchType.Simple, + .RecurseSubdirectories = True + } + + Try + Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", options) + + For Each currentFile As String In txtFiles + Dim fileName = currentFile.Substring(sourceDirectory.Length + 1) + Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)) + Next + Catch ex As Exception + Console.WriteLine(ex.Message) + End Try + + End Sub +End Class +' diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj new file mode 100644 index 00000000000..fc3f09ab482 --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj @@ -0,0 +1,8 @@ + + + + Library + net9.0 + + + diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class2.vb b/snippets/visualbasic/System.IO/Directory/Overview/class2.vb index 04c082090ba..fbc4a0e25f4 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class2.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class2.vb @@ -1,9 +1,9 @@ ' Imports System.IO -Module Module1 +Partial Class Example1 + Shared Sub TwoStringExample() - Sub Main() Dim sourceDirectory As String = "C:\current" Dim archiveDirectory As String = "C:\archive" @@ -17,7 +17,7 @@ Module Module1 Catch e As Exception Console.WriteLine(e.Message) End Try - End Sub -End Module + End Sub +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class3.vb b/snippets/visualbasic/System.IO/Directory/Overview/class3.vb index 4ac6cbe6b57..df1015696e6 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class3.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class3.vb @@ -1,9 +1,9 @@ ' Imports System.IO -Module Module1 +Partial Class Program + Shared Sub EnumerateFilesExample() - Sub Main() Dim archiveDirectory As String = "C:\archive" Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) @@ -17,8 +17,7 @@ Module Module1 Console.WriteLine("{0} lines found.", files.Count.ToString()) End Sub - -End Module +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class4.vb b/snippets/visualbasic/System.IO/Directory/Overview/class4.vb index 6cacf9a22b4..b28f79cbd21 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class4.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class4.vb @@ -1,9 +1,9 @@ ' Imports System.IO -Module Module1 +Partial Class Example1 + Shared Sub OneStringExample() - Sub Main() Dim sourceDirectory As String = "C:\current" Dim archiveDirectory As String = "C:\archive" @@ -19,6 +19,5 @@ Module Module1 End Try End Sub - -End Module -' \ No newline at end of file +End Class +' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class5.vb b/snippets/visualbasic/System.IO/Directory/Overview/class5.vb index 1e75770467c..5eab063c025 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class5.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class5.vb @@ -1,9 +1,9 @@ ' Imports System.IO -Module Module1 +Partial Class Example1 + Shared Sub SearchOptionsExample() - Sub Main() Dim sourceDirectory As String = "C:\current" Dim archiveDirectory As String = "C:\archive" @@ -19,6 +19,5 @@ Module Module1 End Try End Sub - -End Module -' \ No newline at end of file +End Class +' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class6.vb b/snippets/visualbasic/System.IO/Directory/Overview/class6.vb index 3625eaaffd1..548a4a4228d 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class6.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class6.vb @@ -1,9 +1,9 @@ ' Imports System.IO -Module Module1 +Partial Class Program + Shared Sub DirectoryMoveExample() - Sub Main() Dim sourceDirectory As String = "C:\source" Dim destinationDirectory As String = "C:\destination" @@ -14,6 +14,5 @@ Module Module1 End Try End Sub - -End Module +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class7.vb b/snippets/visualbasic/System.IO/Directory/Overview/class7.vb index 8f89cb33950..6877bce989c 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class7.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class7.vb @@ -2,15 +2,15 @@ Imports System.IO Imports System.Security.AccessControl -Module Module1 +Partial Class Program + Shared Sub DirectorySecurityExample() - Sub Main() Dim securityRules As DirectorySecurity = New DirectorySecurity() securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account1", FileSystemRights.Read, AccessControlType.Allow)) securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow)) Dim di As DirectoryInfo = Directory.CreateDirectory("C:\destination\NewDirectory", securityRules) - End Sub -End Module + End Sub +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj b/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj new file mode 100644 index 00000000000..0dc116f7a60 --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj @@ -0,0 +1,8 @@ + + + + Exe + net48 + + + diff --git a/xml/System.IO/Directory.xml b/xml/System.IO/Directory.xml index 01841e2d0c2..65b9c31d42e 100644 --- a/xml/System.IO/Directory.xml +++ b/xml/System.IO/Directory.xml @@ -1377,6 +1377,19 @@ The returned collection is not cached. Each call to the on the collection starts a new enumeration. +## Examples +The following example shows how to retrieve all the text files in a directory and its subdirectories and move them to a new directory. After the files are moved, they no longer exist in the original directories. + +:::code language="csharp" source="~/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs" id="Snippet1"::: +:::code language="fsharp" source="~/snippets/fsharp/System.IO/Directory/EnumerateFiles/program4.fs" id="Snippet1"::: +:::code language="vb" source="~/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb" id="Snippet1"::: + +The following example recursively enumerates all files with the `.txt` extension, ignoring inaccessible directories and files. It reads each line of the file and displays the line if it contains the string "Microsoft". + +:::code language="csharp" source="~/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs" id="Snippet1"::: +:::code language="fsharp" source="~/snippets/fsharp/System.IO/Directory/EnumerateFiles/program3.fs" id="Snippet1"::: +:::code language="vb" source="~/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb" id="Snippet1"::: + ]]> .NET Framework and .NET Core versions older than 2.1: is a zero-length string, contains only white space, or contains invalid characters. You can query for invalid characters by using the method.