forked from bdukes/sugar
-
Notifications
You must be signed in to change notification settings - Fork 6
/
IO.cs
96 lines (86 loc) · 3.4 KB
/
IO.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//
// SubSonic - http://subsonicproject.com
//
// The contents of this file are subject to the New BSD
// License (the "License"); you may not use this file
// except in compliance with the License. You may obtain a copy of
// the License at http://www.opensource.org/licenses/bsd-license.php
//
// Software distributed under the License is distributed on an
// "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
// implied. See the License for the specific language governing
// rights and limitations under the License.
//
using System.IO;
using System.Net;
/// <summary>
/// Summary for the Files class
/// </summary>
public static class IO {
/// <summary>
/// Read a text file and obtain it's contents.
/// </summary>
/// <param name="absolutePath">The complete file path to write to.</param>
/// <returns>String containing the content of the file.</returns>
public static string GetFileText(this string absolutePath) {
using (StreamReader sr = new StreamReader(absolutePath))
return sr.ReadToEnd();
}
/// <summary>
/// Creates or opens a file for writing and writes text to it.
/// </summary>
/// <param name="absolutePath">The complete file path to write to.</param>
/// <param name="fileText">A String containing text to be written to the file.</param>
public static void CreateToFile(this string fileText, string absolutePath) {
using (StreamWriter sw = File.CreateText(absolutePath))
sw.Write(fileText);
}
/// <summary>
/// Update text within a file by replacing a substring within the file.
/// </summary>
/// <param name="absolutePath">The complete file path to write to.</param>
/// <param name="lookFor">A String to be replaced.</param>
/// <param name="replaceWith">A String to replace all occurrences of lookFor.</param>
public static void UpdateFileText(this string absolutePath, string lookFor, string replaceWith) {
string newText = GetFileText(absolutePath).Replace(lookFor, replaceWith);
WriteToFile(absolutePath, newText);
}
/// <summary>
/// Writes out a string to a file.
/// </summary>
/// <param name="absolutePath">The complete file path to write to.</param>
/// <param name="fileText">A String containing text to be written to the file.</param>
public static void WriteToFile(this string absolutePath, string fileText) {
using (StreamWriter sw = new StreamWriter(absolutePath, false))
sw.Write(fileText);
}
/// <summary>
/// Fetches a web page
/// </summary>
/// <param name="url">The URL.</param>
/// <returns></returns>
public static string ReadWebPage(string url) {
return ReadWebResponse(GetWebResponse(url));
}
public static string ReadWebResponse(WebResponse response)
{
string result = "";
using (Stream stream = response.GetResponseStream())
{
StreamReader sr = new StreamReader(stream);
result = sr.ReadToEnd();
sr.Close();
}
return result;
}
/// <summary>
/// Fetches a web page
/// </summary>
/// <param name="url">The URL.</param>
/// <returns></returns>
public static HttpWebResponse GetWebResponse(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
return (HttpWebResponse)request.GetResponse();
}
}