Skip to content

Commit 1bdbd8b

Browse files
authored
Merge pull request #24 from casantosmu/add-dotnet-manipulating-files
Add `Manipulating Files in .NET | C# Cheat Sheet`
2 parents c30472f + 006e225 commit 1bdbd8b

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed

docs/dotnet/manipulating-files.md

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
---
2+
title: Manipulating Files in .NET | C# Cheat Sheet
3+
description: Quick reference guide for working with files and directories in .NET Framework using C#.
4+
---
5+
6+
# Manipulating Files in .NET | C# Cheat Sheet
7+
8+
## Enumerating Directories
9+
10+
### List All Directories
11+
12+
To list all directories in a given folder:
13+
14+
```csharp
15+
IEnumerable<string> listOfDirectories = Directory.EnumerateDirectories("dir");
16+
17+
foreach (var dir in listOfDirectories) {
18+
Console.WriteLine(dir);
19+
}
20+
```
21+
22+
### List All Files in a Directory
23+
24+
To list all files within a specific directory:
25+
26+
```csharp
27+
IEnumerable<string> files = Directory.EnumerateFiles("dir");
28+
29+
foreach (var file in files) {
30+
Console.WriteLine(file);
31+
}
32+
```
33+
34+
### Recursively Enumerate Files in All Subdirectories
35+
36+
To search through a directory and its subdirectories for specific files:
37+
38+
```csharp
39+
IEnumerable<string> allFilesInAllFolders = Directory.EnumerateFiles("dir", "*.txt", SearchOption.AllDirectories);
40+
41+
foreach (var file in allFilesInAllFolders) {
42+
Console.WriteLine(file);
43+
}
44+
```
45+
46+
## Working with Directories
47+
48+
### Get Current Directory
49+
50+
To get the path of the current working directory:
51+
52+
```csharp
53+
Console.WriteLine(Directory.GetCurrentDirectory());
54+
```
55+
56+
### Accessing Special Folders
57+
58+
To retrieve paths to special system folders in a cross-platform way:
59+
60+
```csharp
61+
Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
62+
```
63+
64+
### Creating Directories
65+
66+
To create a directory and any necessary subdirectories:
67+
68+
```csharp
69+
Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), "dir", "subDir", "newDir"));
70+
```
71+
72+
### Check If Directory Exists
73+
74+
To check if a specific directory exists:
75+
76+
```csharp
77+
Console.WriteLine(Directory.Exists("dir")); // outputs: "true"
78+
```
79+
80+
## Working with File Paths
81+
82+
### Combining Paths
83+
84+
To correctly combine multiple path segments:
85+
86+
```csharp
87+
Console.WriteLine(Path.Combine("dir", "subDir")); // outputs: dir/subDir
88+
```
89+
90+
### Get File Extension
91+
92+
To retrieve the file extension of a given filename:
93+
94+
```csharp
95+
Console.WriteLine(Path.GetExtension("greeting.txt")); // outputs: .txt
96+
```
97+
98+
## Reading and Writing Files
99+
100+
### Reading a File
101+
102+
To read all text from a file:
103+
104+
```csharp
105+
Console.WriteLine(File.ReadAllText("greeting.txt"));
106+
```
107+
108+
### Writing to a File
109+
110+
To create or overwrite a file with specified content:
111+
112+
```csharp
113+
File.WriteAllText("greeting.txt", "Hello World Kim!");
114+
```
115+
116+
### Appending to a File
117+
118+
To append data to an existing file, or create it if it doesn’t exist:
119+
120+
```csharp
121+
File.AppendAllText("greeting.txt", $"Hello World Lucas!{Environment.NewLine}");
122+
```
123+
124+
## Working with File Information
125+
126+
### Getting File Info
127+
128+
To get detailed information about a file:
129+
130+
```csharp
131+
FileInfo info = new FileInfo("greeting.txt");
132+
133+
Console.WriteLine($"Full Name: {info.FullName}");
134+
Console.WriteLine($"Directory: {info.Directory}");
135+
Console.WriteLine($"Extension: {info.Extension}");
136+
Console.WriteLine($"Create Date: {info.CreationTime}");
137+
```

mkdocs.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ nav:
88
- Home: index.md
99
- .NET:
1010
- CLI Commands: dotnet/cli-commands.md
11+
- Manipulating Files: dotnet/manipulating-files.md
1112
- Patterns:
1213
- "State Machines: Example": patterns/finite-state-machines.md
1314
- "The Observer Pattern: Example": patterns/observer-pattern.md

0 commit comments

Comments
 (0)