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();