My Development Notes

By Haemoglobin
3/10/2010 (revision 1)

System.IO

DriveInfo[] d = DriveInfo.GetDrives();
DirectoryInfo di = new DirectoryInfo(@"c:\windows"); 
di.GetDirectories(); 
FileInfo[] fs = di.GetFiles(); 
di.Exists(); 
di.Create(); 

FileInfo f = new FileInfo(@"c:\text.txt"); 
f.CreateText(); 
f.CopyTo("text2.txt"); 

File.Copy("text1.txt", "text2.txt"); 

FileSystemWatcher fsw = new FileSystemWatcher("c:\windows"); 
fsw.IncludeSubDirectories = true; 
fsw.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite; 

fsw.Changed = new FileSystemEventHandler(fsw_Changed); 
fsw.Created = new FileSystemEventHandler(fsw_Changed); 
fsw.Deleted = new FileSystemEventHandler(fsw_Changed); 
fsw.Renamed = new RenamedEventHandler(fsw_Renamed); 

Streams

TextReader (abstract)
|__StreamReader
|__StringReader

TextReader tr = File.OpenText("text.txt");
string contents = tr.ReadToEnd();

StreamReader sr = new StreamReader("text.txt"); 
sr.ReadLine(); 
sr.Close(); 

TextWriter tw = File.CreateText("text.txt"); 
tw.WriteLine("hello"); 

StreamWriter sw = new StreamWriter("text.txt"); 
sw.WriteLine("blah"); 
sw.Close(); 

//Binary streams
BinaryWriter bw = new BinaryWriter(new FileStream("binary.bin", FileMode.Create)); 
bw.Write(4); 

BinaryReader br = new BinaryReader(new FileStream("binary.bin", FileMode.Open)); 
int i = br.ReadInt32(); 

//Stream wrappers around strings
StringWriter sw = new StringWriter(stringBuilderObject); 
sw.Write("hello"); //useful for passing into methods that require a stream but you just want the string

StringReader sr = new StringReader(stringBuilderObject); 
sr.ReadToEnd(); 

//Memory streams
MemoryStream ms = new MemoryStream();  //or (initialSize), but expandable, (bytes) fixed size with bytes.
StreamWriter sw = new StreamWriter(ms); 
sw.WriteLine("hello"); 
sw.Flush(); 
ms.WriteTo(File.Create(fileName)); 

//Sending data over the network
using(Stream netStream = new NetworkStream(clientSocket, true), bufStream = new BufferedStream(netStream, streamBufferSize))    
{
    byte[] dataToSend = new byte[] {3, 2, 5, 66};
    netStream.Write(dataToSend, 0, dataToSend.Length);
}

//Reading a particular XML node from the web
private static string GetXmlNode(string url, string node) {
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
    System.Net.HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream receiveStream = response.GetResponseStream();
    StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
    XmlDocument xml = new XmlDocument();
    xml.Load(readStream);
    XmlNode xmlNode = xml.SelectSingleNode(node);
    return xmlNode.InnerText;
}

//Compessing / Decompressing Streams
GZipStream gzOut = new GZipStream(File.Create("compressed.zip"), CompressionMode.Compress);
StreamWriter sw = new StreamWriter(gzOut); 

GZipStream gzIn = new GZipStream(File.OpenText("compressed.zip"), CompressionMode.Decompress);
StreamReader sr = new StreamReader(gzIn); 
string contents = sr.ReadToEnd(); 

Comments

Powered by BlogEngine.NET 1.6.1.0 | Design by styleshout | Enhanced by GravityCube.net | 1.4.5 Changes by zembian.com | Adapted by HamishGraham.NET
(c) 2010 Hamish Graham. Banner Image (c) Chris Gin