From f9f1a1d2334c209da03f7b89fda548c9af347ef9 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Mon, 8 Sep 2025 12:31:56 -0300 Subject: [PATCH 01/10] add missing examples for EnumerateFiles --- .../Directory/EnumerateFiles/program3.cs | 50 +++++++++++++++++++ .../System.IO/Directory/Overview/class8.cs | 38 ++++++++++++++ .../Directory/EnumerateFiles/fs.fsproj | 3 +- .../Directory/EnumerateFiles/program3.fs | 35 +++++++++++++ .../System.IO/Directory/Overview/class8.fs | 23 +++++++++ .../System.IO/Directory/Overview/fs.fsproj | 3 +- .../Directory/EnumerateFiles/program2.vb | 39 +++++++++++++++ .../System.IO/Directory/Overview/class8.vb | 27 ++++++++++ xml/System.IO/Directory.xml | 13 +++++ 9 files changed, 229 insertions(+), 2 deletions(-) create mode 100644 snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs create mode 100644 snippets/csharp/System.IO/Directory/Overview/class8.cs create mode 100644 snippets/fsharp/System.IO/Directory/EnumerateFiles/program3.fs create mode 100644 snippets/fsharp/System.IO/Directory/Overview/class8.fs create mode 100644 snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb create mode 100644 snippets/visualbasic/System.IO/Directory/Overview/class8.vb 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..9a4332835cc --- /dev/null +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs @@ -0,0 +1,50 @@ +// +using System; +using System.IO; +using System.Linq; + +class Program +{ + static void Main(string[] args) + { + 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/Overview/class8.cs b/snippets/csharp/System.IO/Directory/Overview/class8.cs new file mode 100644 index 00000000000..ff38b304542 --- /dev/null +++ b/snippets/csharp/System.IO/Directory/Overview/class8.cs @@ -0,0 +1,38 @@ +// +using System; +using System.IO; + +namespace ConsoleApplication +{ + class Program + { + static void Main(string[] args) + { + 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/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj index 7f314d88392..087402d6ce5 100644 --- a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj @@ -8,5 +8,6 @@ + - \ No newline at end of file + 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/Overview/class8.fs b/snippets/fsharp/System.IO/Directory/Overview/class8.fs new file mode 100644 index 00000000000..3098c9765b9 --- /dev/null +++ b/snippets/fsharp/System.IO/Directory/Overview/class8.fs @@ -0,0 +1,23 @@ +module class8 + +// +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/fs.fsproj b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj index f38a7e6ad16..11fcb6f7400 100644 --- a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj @@ -12,5 +12,6 @@ + - \ No newline at end of file + 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..630513758c6 --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb @@ -0,0 +1,39 @@ +' +Imports System.IO +Imports System.Xml.Linq + +Module Module1 + Sub Main() + 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 Module +' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class8.vb b/snippets/visualbasic/System.IO/Directory/Overview/class8.vb new file mode 100644 index 00000000000..23149927256 --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/Overview/class8.vb @@ -0,0 +1,27 @@ +' +Imports System.IO + +Module Module1 + Sub Main() + 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 Module +' diff --git a/xml/System.IO/Directory.xml b/xml/System.IO/Directory.xml index 01841e2d0c2..7846554641f 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/Overview/class8.cs" id="Snippet16"::: + :::code language="fsharp" source="~/snippets/fsharp/System.IO/Directory/Overview/class8.fs" id="Snippet16"::: + :::code language="vb" source="~/snippets/visualbasic/System.IO/Directory/Overview/class8.vb" id="Snippet16"::: + + 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. From ed37a2d53509dce01b01ce3f5884ebb4e4dbf024 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 11:09:04 -0300 Subject: [PATCH 02/10] add missing 'module' declaration to F# snippets --- .../fsharp/System.IO/Directory/EnumerateFiles/program.fs | 4 +++- snippets/fsharp/System.IO/Directory/Overview/class1.fs | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) 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/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 +// From cbd1b0de40bc57f6d2c8a30184e2a28c10263fac Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 11:17:44 -0300 Subject: [PATCH 03/10] add project file for C# & VB.NET --- .../System.IO/Directory/EnumerateFiles/project.csproj | 8 ++++++++ .../csharp/System.IO/Directory/Overview/project.csproj | 8 ++++++++ .../System.IO/Directory/EnumerateFiles/project.vbproj | 8 ++++++++ .../System.IO/Directory/Overview/project.vbproj | 8 ++++++++ 4 files changed, 32 insertions(+) create mode 100644 snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj create mode 100644 snippets/csharp/System.IO/Directory/Overview/project.csproj create mode 100644 snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj create mode 100644 snippets/visualbasic/System.IO/Directory/Overview/project.vbproj 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..92e46ddaccf --- /dev/null +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj @@ -0,0 +1,8 @@ + + + + Exe + net9.0 + + + 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..92e46ddaccf --- /dev/null +++ b/snippets/csharp/System.IO/Directory/Overview/project.csproj @@ -0,0 +1,8 @@ + + + + Exe + net9.0 + + + 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..92e46ddaccf --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj @@ -0,0 +1,8 @@ + + + + Exe + net9.0 + + + 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..92e46ddaccf --- /dev/null +++ b/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj @@ -0,0 +1,8 @@ + + + + Exe + net9.0 + + + From 47d3a6a002034a201b26502f994b74cffee3bf0c Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 14:26:34 -0300 Subject: [PATCH 04/10] fix type names conflicts --- .../Directory/EnumerateFiles/program.cs | 10 ++--- .../Directory/EnumerateFiles/program1.cs | 12 +++--- .../Directory/EnumerateFiles/program2.cs | 11 ++--- .../Directory/EnumerateFiles/program3.cs | 6 +-- .../Directory/EnumerateFiles/project.csproj | 2 +- .../System.IO/Directory/Overview/class2.cs | 31 ++++++------- .../System.IO/Directory/Overview/class3.cs | 35 ++++++++------- .../System.IO/Directory/Overview/class4.cs | 31 ++++++------- .../System.IO/Directory/Overview/class5.cs | 33 +++++++------- .../System.IO/Directory/Overview/class6.cs | 25 +++++------ .../System.IO/Directory/Overview/class7.cs | 15 +++---- .../System.IO/Directory/Overview/class8.cs | 43 +++++++++---------- .../Directory/EnumerateFiles/module1.vb | 11 ++--- .../Directory/EnumerateFiles/module11.vb | 11 ++--- .../Directory/EnumerateFiles/program.vb | 11 +++-- .../Directory/EnumerateFiles/program2.vb | 8 ++-- .../Directory/EnumerateFiles/project.vbproj | 2 +- .../System.IO/Directory/Overview/class2.vb | 8 ++-- .../System.IO/Directory/Overview/class3.vb | 7 ++- .../System.IO/Directory/Overview/class4.vb | 9 ++-- .../System.IO/Directory/Overview/class5.vb | 9 ++-- .../System.IO/Directory/Overview/class6.vb | 7 ++- .../System.IO/Directory/Overview/class7.vb | 8 ++-- .../System.IO/Directory/Overview/class8.vb | 8 ++-- 24 files changed, 170 insertions(+), 183 deletions(-) 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 index 9a4332835cc..e189e19ae35 100644 --- a/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program3.cs @@ -3,9 +3,9 @@ using System.IO; using System.Linq; -class Program +partial class Example2 { - static void Main(string[] args) + static void EnumerationOptionsExample() { try { @@ -13,7 +13,7 @@ static void Main(string[] args) string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Set the options for the enumeration. - var options = new EnumerationOptions() + var options = new EnumerationOptions { IgnoreInaccessible = true, MatchCasing = MatchCasing.CaseInsensitive, diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj b/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj index 92e46ddaccf..fc3f09ab482 100644 --- a/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/project.csproj @@ -1,7 +1,7 @@ - Exe + 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..2024a3a0542 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class3.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class3.cs @@ -3,29 +3,28 @@ 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..68e853b66d6 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 CreateDirectoryExample() { - 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/class8.cs b/snippets/csharp/System.IO/Directory/Overview/class8.cs index ff38b304542..0ddcd798282 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class8.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class8.cs @@ -2,37 +2,34 @@ using System; using System.IO; -namespace ConsoleApplication +partial class Example1 { - class Program + static void EnumerationOptionsExample() { - static void Main(string[] args) - { - string sourceDirectory = @"C:\current"; - string archiveDirectory = @"C:\archive"; + string sourceDirectory = @"C:\current"; + string archiveDirectory = @"C:\archive"; - var options = new EnumerationOptions() - { - MatchCasing = MatchCasing.CaseInsensitive, - MatchType = MatchType.Simple, - RecurseSubdirectories = true - }; + var options = new EnumerationOptions + { + MatchCasing = MatchCasing.CaseInsensitive, + MatchType = MatchType.Simple, + RecurseSubdirectories = true + }; - try - { - var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", options); + 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) + foreach (string currentFile in txtFiles) { - Console.WriteLine(ex.Message); + 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/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 index 630513758c6..fd83b6e832a 100644 --- a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program2.vb @@ -2,8 +2,9 @@ Imports System.IO Imports System.Xml.Linq -Module Module1 - Sub Main() +Partial Class Example2 + Shared Sub EnumerationOptionsExample() + Try ' Set a variable to the My Documents Path. Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) @@ -34,6 +35,7 @@ Module Module1 Catch ex As Exception Console.WriteLine(ex.Message) End Try + End Sub -End Module +End Class ' diff --git a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj index 92e46ddaccf..fc3f09ab482 100644 --- a/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/project.vbproj @@ -1,7 +1,7 @@ - Exe + 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..29b9a1a7d5e 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 CreateDirectoryExample() - 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/class8.vb b/snippets/visualbasic/System.IO/Directory/Overview/class8.vb index 23149927256..d3214a73c72 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class8.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class8.vb @@ -1,8 +1,9 @@ ' Imports System.IO -Module Module1 - Sub Main() +Partial Class Example1 + Shared Sub EnumerationOptionsExample() + Dim sourceDirectory As String = "C:\current" Dim archiveDirectory As String = "C:\archive" @@ -22,6 +23,7 @@ Module Module1 Catch ex As Exception Console.WriteLine(ex.Message) End Try + End Sub -End Module +End Class ' From 11de03c758042224f9656c6734a39e183b63faf9 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 14:32:26 -0300 Subject: [PATCH 05/10] update the target framework to 'net9.0' --- snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj | 4 ++-- snippets/fsharp/System.IO/Directory/Overview/fs.fsproj | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj index 087402d6ce5..685328f9ec7 100644 --- a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj @@ -1,7 +1,7 @@ - Exe - net6.0 + Library + net9.0 diff --git a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj index 11fcb6f7400..4359cd7be79 100644 --- a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj @@ -1,7 +1,7 @@ Exe - net48 + net9.0 From c061473931264c306fe5d7d7030a8f9de40ff817 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 20:20:00 -0300 Subject: [PATCH 06/10] restore project file to 'net48' --- .../class8.cs => EnumerateFiles/program4.cs} | 4 ++-- .../System.IO/Directory/Overview/class3.cs | 1 - .../System.IO/Directory/Overview/class7.cs | 2 +- .../Directory/Overview/project.csproj | 2 +- .../Directory/EnumerateFiles/program4.fs | 23 +++++++++++++++++++ .../System.IO/Directory/Overview/fs.fsproj | 2 +- .../class8.vb => EnumerateFiles/program3.vb} | 4 ++-- .../System.IO/Directory/Overview/class7.vb | 2 +- .../Directory/Overview/project.vbproj | 2 +- 9 files changed, 32 insertions(+), 10 deletions(-) rename snippets/csharp/System.IO/Directory/{Overview/class8.cs => EnumerateFiles/program4.cs} (96%) create mode 100644 snippets/fsharp/System.IO/Directory/EnumerateFiles/program4.fs rename snippets/visualbasic/System.IO/Directory/{Overview/class8.vb => EnumerateFiles/program3.vb} (96%) diff --git a/snippets/csharp/System.IO/Directory/Overview/class8.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs similarity index 96% rename from snippets/csharp/System.IO/Directory/Overview/class8.cs rename to snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs index 0ddcd798282..dd158e252da 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class8.cs +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs @@ -1,4 +1,4 @@ -// +// using System; using System.IO; @@ -32,4 +32,4 @@ static void EnumerationOptionsExample() } } } -// +// diff --git a/snippets/csharp/System.IO/Directory/Overview/class3.cs b/snippets/csharp/System.IO/Directory/Overview/class3.cs index 2024a3a0542..1381b39e0d5 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class3.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class3.cs @@ -3,7 +3,6 @@ using System.IO; using System.Linq; - partial class Program { static void EnumerateFilesExample() diff --git a/snippets/csharp/System.IO/Directory/Overview/class7.cs b/snippets/csharp/System.IO/Directory/Overview/class7.cs index 68e853b66d6..e2db49a8fa2 100644 --- a/snippets/csharp/System.IO/Directory/Overview/class7.cs +++ b/snippets/csharp/System.IO/Directory/Overview/class7.cs @@ -5,7 +5,7 @@ partial class Program { - static void CreateDirectoryExample() + static void DirectorySecurityExample() { DirectorySecurity securityRules = new DirectorySecurity(); securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow)); diff --git a/snippets/csharp/System.IO/Directory/Overview/project.csproj b/snippets/csharp/System.IO/Directory/Overview/project.csproj index 92e46ddaccf..0dc116f7a60 100644 --- a/snippets/csharp/System.IO/Directory/Overview/project.csproj +++ b/snippets/csharp/System.IO/Directory/Overview/project.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net48 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/fs.fsproj b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj index 4359cd7be79..11fcb6f7400 100644 --- a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj @@ -1,7 +1,7 @@ Exe - net9.0 + net48 diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class8.vb b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb similarity index 96% rename from snippets/visualbasic/System.IO/Directory/Overview/class8.vb rename to snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb index d3214a73c72..1e1873b9729 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class8.vb +++ b/snippets/visualbasic/System.IO/Directory/EnumerateFiles/program3.vb @@ -1,4 +1,4 @@ -' +' Imports System.IO Partial Class Example1 @@ -26,4 +26,4 @@ Partial Class Example1 End Sub End Class -' +' diff --git a/snippets/visualbasic/System.IO/Directory/Overview/class7.vb b/snippets/visualbasic/System.IO/Directory/Overview/class7.vb index 29b9a1a7d5e..6877bce989c 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/class7.vb +++ b/snippets/visualbasic/System.IO/Directory/Overview/class7.vb @@ -3,7 +3,7 @@ Imports System.IO Imports System.Security.AccessControl Partial Class Program - Shared Sub CreateDirectoryExample() + Shared Sub DirectorySecurityExample() Dim securityRules As DirectorySecurity = New DirectorySecurity() securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account1", FileSystemRights.Read, AccessControlType.Allow)) diff --git a/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj b/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj index 92e46ddaccf..0dc116f7a60 100644 --- a/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj +++ b/snippets/visualbasic/System.IO/Directory/Overview/project.vbproj @@ -2,7 +2,7 @@ Exe - net9.0 + net48 From b09b6d2ff55da45cc3bd64939a397014a5d6e569 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 20:31:13 -0300 Subject: [PATCH 07/10] update snippets location --- .../System.IO/Directory/Overview/class8.fs | 23 ------------------- xml/System.IO/Directory.xml | 6 ++--- 2 files changed, 3 insertions(+), 26 deletions(-) delete mode 100644 snippets/fsharp/System.IO/Directory/Overview/class8.fs diff --git a/snippets/fsharp/System.IO/Directory/Overview/class8.fs b/snippets/fsharp/System.IO/Directory/Overview/class8.fs deleted file mode 100644 index 3098c9765b9..00000000000 --- a/snippets/fsharp/System.IO/Directory/Overview/class8.fs +++ /dev/null @@ -1,23 +0,0 @@ -module class8 - -// -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/xml/System.IO/Directory.xml b/xml/System.IO/Directory.xml index 7846554641f..f46793c01a7 100644 --- a/xml/System.IO/Directory.xml +++ b/xml/System.IO/Directory.xml @@ -1380,9 +1380,9 @@ The returned collection is not cached. Each call to the Date: Fri, 10 Oct 2025 20:49:42 -0300 Subject: [PATCH 08/10] update '.fsproj' files --- snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj | 1 + snippets/fsharp/System.IO/Directory/Overview/fs.fsproj | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj index 685328f9ec7..3b16766b39a 100644 --- a/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/EnumerateFiles/fs.fsproj @@ -9,5 +9,6 @@ + diff --git a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj index 11fcb6f7400..1cb9d812f3a 100644 --- a/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj +++ b/snippets/fsharp/System.IO/Directory/Overview/fs.fsproj @@ -12,6 +12,5 @@ - From e405ec9df95e1bc6a507a1479862d9d409a7b366 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Fri, 10 Oct 2025 21:38:41 -0300 Subject: [PATCH 09/10] close snippet tag --- snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs b/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs index dd158e252da..6169a46c3ab 100644 --- a/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs +++ b/snippets/csharp/System.IO/Directory/EnumerateFiles/program4.cs @@ -32,4 +32,4 @@ static void EnumerationOptionsExample() } } } -// +// From d92840c132b09f555a0b3321461a1144fd0e4667 Mon Sep 17 00:00:00 2001 From: Stuart Mosquera Date: Tue, 21 Oct 2025 17:41:39 -0300 Subject: [PATCH 10/10] remove unnecessary whitespace --- xml/System.IO/Directory.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/xml/System.IO/Directory.xml b/xml/System.IO/Directory.xml index f46793c01a7..65b9c31d42e 100644 --- a/xml/System.IO/Directory.xml +++ b/xml/System.IO/Directory.xml @@ -1378,17 +1378,17 @@ 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. +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"::: +:::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". +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"::: +:::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"::: ]]>