using System;
using System.IO;
using System.Windows.Forms;
class MainClass {
static void Main(string[] args) {
using (FileSystemWatcher watch = new FileSystemWatcher()) {
watch.Path = Application.StartupPath;
watch.Filter = "*.*";
watch.IncludeSubdirectories = true;
// Attach the event handler.
watch.Created += new FileSystemEventHandler(OnCreatedOrDeleted);
watch.Deleted += new FileSystemEventHandler(OnCreatedOrDeleted);
watch.EnableRaisingEvents = true;
Console.WriteLine("Press Enter to create a file.");
Console.ReadLine();
if (File.Exists("test.bin")) {
File.Delete("test.bin");
}
// Create test.bin.
using (FileStream fs = new FileStream("test.bin", FileMode.Create)) {
// Do something.
}
Console.WriteLine("Press Enter to terminate the application.");
Console.ReadLine();
}
}
private static void OnCreatedOrDeleted(object sender, FileSystemEventArgs e) {
Console.WriteLine(" NOTIFICATION: " + e.FullPath + "' was " + e.ChangeType.ToString());
Console.WriteLine();
}
}
Month: February 2011
Set NotifyFilter of FileSystemWatcher
using System;
using System.IO;
public class Program {
static void Main(string[] args) {
FileSystemWatcher watcher = new FileSystemWatcher();
try {
watcher.Path = @"C:MyFolder";
} catch (ArgumentException ex) {
Console.WriteLine(ex.Message);
return;
}
watcher.NotifyFilter = NotifyFilters.LastAccess
| NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;
watcher.Filter = "*.txt";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.EnableRaisingEvents = true;
Console.WriteLine(@"Press 'q' to quit app.");
while (Console.Read() != 'q') ;
}
private static void OnChanged(object source, FileSystemEventArgs e) {
Console.WriteLine("File: {0} {1}!", e.FullPath, e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e) {
Console.WriteLine("File: {0} renamed to
{1}", e.OldFullPath, e.FullPath);
}
}
Write byte array to a file
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program {
static void Main(string[] args) {
byte[] byData;
char[] charData;
try {
FileStream aFile = new FileStream("Temp.txt", FileMode.Create);
charData = "www.kutayzorlu.com/java2s/com".ToCharArray();
byData = new byte[charData.Length];
Encoder e = Encoding.UTF8.GetEncoder();
e.GetBytes(charData, 0, charData.Length, byData, 0, true);
aFile.Seek(0, SeekOrigin.Begin);
aFile.Write(byData, 0, byData.Length);
} catch (IOException ex) {
Console.WriteLine(ex.ToString());
return;
}
}
}
Seek from Begin
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program {
static void Main(string[] args) {
byte[] byData = new byte[200];
char[] charData = new Char[200];
try {
FileStream aFile = new FileStream("Program.cs", FileMode.Open);
aFile.Seek(135, SeekOrigin.Begin);
aFile.Read(byData, 0, 200);
} catch (IOException e) {
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
Console.ReadKey();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
}
}
Reading and Writing Files
using System;
using System.IO;
public class ReadingWritingFiles
{
public static void Main()
{
FileStream f = new FileStream("output.txt", FileMode.Create);
StreamWriter s = new StreamWriter(f);
s.WriteLine("{0} {1}", "test", 55);
s.Close();
f.Close();
}
}
Using FileStreams
/*
* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
* Version: 1
*/
using System;
using System.IO;
namespace Client.Chapter_11___File_and_Streams
{
public class UsingFileStreams {
static void Main(string[] args)
{
//Creates a file with read-write access that allows others to read
FileStream MyFileStream1 = new FileStream(@”c:ProjectsTesting.txt”, FileMode.Create);
FileInfo MyFiles = new FileInfo(@”c:ProjectsTesting.txt”);
FileStream MyFileStream2 = MyFiles.OpenRead();
//or any of the following
MyFileStream2 = MyFiles.OpenWrite();
MyFileStream2 = MyFiles.Open(FileMode.Append, FileAccess.Read, FileShare.None);
MyFileStream2 = MyFiles.Create();
//You can read file stream ona pe byte basis or as an array of bytes
int MyBytes = MyFileStream1.ReadByte();
//or
int NumberOfBytes = 200;
byte[] MyByteArray = new Byte[NumberOfBytes];
int BytesRead = MyFileStream1.Read(MyByteArray, 0, NumberOfBytes);
//Data can be written to FileStreams as well through bytes or arrays of //bytes
byte MyWriteByte = 100;
MyFileStream1.WriteByte(MyWriteByte);
//or via an array
int NumberOfBytesToWrite = 256;
byte[] MyWriteByteArray = new Byte[NumberOfBytesToWrite];
for (int i = 0; i < 256; i++) { MyWriteByteArray[i] = (byte)i; i++; } MyFileStream1.Write(MyWriteByteArray, 0, NumberOfBytesToWrite); MyFileStream1.Close(); MyFileStream2.Close(); } } } [/csharp]
Compare two files
/*
C# A Beginner's Guide
By Schildt
Publisher: Osborne McGraw-Hill
ISBN: 0072133295
*/
/*
Project 11-1
Compare two files.
To use this program, specify the names
of the files to be compared on the command line.
For example:
CompFile FIRST.TXT SECOND.TXT
*/
using System;
using System.IO;
public class CompFiles {
public static void Main(string[] args) {
int i=0, j=0;
FileStream f1;
FileStream f2;
try {
// open first file
try {
f1 = new FileStream(args[0], FileMode.Open);
} catch(FileNotFoundException exc) {
Console.WriteLine(exc.Message);
return;
}
// open second file
try {
f2 = new FileStream(args[1], FileMode.Open);
} catch(FileNotFoundException exc) {
Console.WriteLine(exc.Message);
return;
}
} catch(IndexOutOfRangeException exc) {
Console.WriteLine(exc.Message + "
Usage: CompFile f1 f2");
return;
}
// Compare files
try {
do {
i = f1.ReadByte();
j = f2.ReadByte();
if(i != j) break;
} while(i != -1 && j != -1);
} catch(IOException exc) {
Console.WriteLine(exc.Message);
}
if(i != j)
Console.WriteLine("Files differ.");
else
Console.WriteLine("Files are the same.");
f1.Close();
f2.Close();
}
}

