Using Files in CSharp
Revision as of 15:20, 15 March 2014 by PeterHarding (talk | contribs)
Creating Text Files
class WriteTextFile { static void Main() { // These examples assume a "C:\Users\Public\TestFolder" folder on your machine. // You can modify the path if necessary. // Example #1: Write an array of strings to a file. // Create a string array that consists of three lines. string[] lines = {"First line", "Second line", "Third line"}; System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\WriteLines.txt", lines); // Example #2: Write one string to a text file. string text = "A class is the most powerful data type in C#. Like structures, " + "a class defines the data and behavior of the data type. "; System.IO.File.WriteAllText(@"C:\Users\Public\TestFolder\WriteText.txt", text); // Example #3: Write only some strings in an array to a file. using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt")) { foreach (string line in lines) { if (line.Contains("Second") == false) { file.WriteLine(line); } } } // Example #4: Append new text to an existing file using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt", true)) { file.WriteLine("Fourth line"); } } } /* Output (to WriteLines.txt): First line Second line Third line Output (to WriteText.txt): A class is the most powerful data type in C#. Like structures, a class defines the data and behavior of the data type. Output to WriteLines2.txt after Example #3: First line Third line Output to WriteLines2.txt after Example #4: First line Third line Fourth line */
Creating folders
public class CreateFileOrFolder { static void Main() { // Specify a "currently active folder" string activeDir = @"c:\testdir2"; //Create a new subfolder under the current active folder string newPath = System.IO.Path.Combine(activeDir, "mySubDir"); // Create the subfolder System.IO.Directory.CreateDirectory(newPath); // Create a new file name. This example generates // a random string. string newFileName = System.IO.Path.GetRandomFileName(); // Combine the new file name with the path newPath = System.IO.Path.Combine(newPath, newFileName); // Create the file and write to it. // DANGER: System.IO.File.Create will overwrite the file // if it already exists. This can occur even with // random file names. if (!System.IO.File.Exists(newPath)) { using (System.IO.FileStream fs = System.IO.File.Create(newPath)) { for (byte i = 0; i < 100; i++) { fs.WriteByte(i); } } } // Read data back from the file to prove // that the previous code worked. try { byte[] readBuffer = System.IO.File.ReadAllBytes(newPath); foreach (byte b in readBuffer) { Console.WriteLine(b); } } catch (System.IO.IOException e) { Console.WriteLine(e.Message); } // Keep the console window open in debug mode. System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } }
File Metadata
using System; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { DateTime fileCreatedDate = File.GetCreationTime(@"C:\Example\MyTest.txt"); Console.WriteLine("file created: " + fileCreatedDate); } } }