Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.IO;
- using System.Net;
- namespace Patcher2
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- public FtpWebRequest request;
- public string ToFake(string name)
- {
- return name.Replace(@"\", "/");
- }
- public string FromFake(string name)
- {
- return name.Replace("/", @"\");
- }
- public void Upload(string fileName, string fn2)
- {
- fileName = ToFake(fileName);
- this.request = (FtpWebRequest)WebRequest.Create("ftp://amit1532.comule.com/public_html/Patcher/" + fileName);
- string fN = fileName;
- int place = 0;
- if (fN.IndexOf("/") != -1)
- {
- while (place != -1)
- {
- if (fileName.IndexOf("/") == -1)
- {
- break;
- }
- place = fileName.IndexOf("/", place + 1);
- if (place == -1)
- break;
- fN = fileName.Substring(0, place);
- WebRequest req = WebRequest.Create("ftp://amit1532.comule.com/public_html/Patcher/" + fN);
- req.Credentials = new NetworkCredential("a7566948", "1l0o0744");
- req.Method = WebRequestMethods.Ftp.MakeDirectory;
- try
- {
- WebResponse res = req.GetResponse();
- }
- catch
- {
- }
- }
- }
- this.request.Method = "STOR";
- this.request.Credentials = new NetworkCredential("a7566948", "1l0o0744");
- StreamReader sourceStream = new StreamReader(fn2);
- byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
- sourceStream.Close();
- this.request.ContentLength = (long)fileContents.Length;
- Stream requestStream = this.request.GetRequestStream();
- requestStream.Write(fileContents, 0, fileContents.Length);
- requestStream.Close();
- FtpWebResponse response = (FtpWebResponse)this.request.GetResponse();
- response.Close();
- }
- public void UploadText(string fileName, string text)
- {
- this.request = (FtpWebRequest)WebRequest.Create("ftp://amit1532.comule.com/public_html/Patcher/" + fileName);
- this.request.Method = "STOR";
- request.Headers.Add("Overwrite", "t");
- this.request.Credentials = new NetworkCredential("a7566948", "1l0o0744");
- byte[] fileContents = StrToByteArray(text);
- string bitbit = "";
- for (int i = 0; i < fileContents.Length; i++)
- {
- bitbit += fileContents[i].ToString();
- }
- this.request.ContentLength = (long)fileContents.Length;
- Stream requestStream = this.request.GetRequestStream();
- requestStream.Write(fileContents, 0, fileContents.Length);
- requestStream.Close();
- FtpWebResponse response = (FtpWebResponse)this.request.GetResponse();
- response.Close();
- }
- public void CreateFile(string name, string text)
- {
- name = FromFake(name);
- string fN = name;
- while (fN.IndexOf("\\") != -1)
- {
- string nDir = name.Substring(0, fN.IndexOf("\\"));
- if (!Directory.Exists(nDir))
- {
- DirectoryInfo di = Directory.CreateDirectory(fN);
- // Delete the directory.
- di.Delete();
- }
- fN = fN.Substring(fN.IndexOf("\\") + 1);
- }
- FileStream fs = new FileStream(name, FileMode.OpenOrCreate, FileAccess.Write);
- fs.Write(StrToByteArray(text), 0, text.Length);
- fs.Close();
- }
- public string ReadSrvFile(string name)
- {
- WebClient request = new WebClient();
- string url = "ftp://amit1532.comule.com/public_html/Patcher/" + name;
- byte[] newFileData = new byte[0];
- try
- {
- request.Credentials = new NetworkCredential("a7566948", "1l0o0744");
- newFileData = request.DownloadData(url);
- }
- catch
- {
- return "";
- }
- return Encoding.UTF8.GetString(newFileData);
- }
- private void button1_Click(object sender, EventArgs e)
- {
- List<string> strs = this.GetFiles(this.GetVersion());
- DownloadFiles(strs);
- MessageBox.Show("your files have been downloaded");
- }
- private void button2_Click(object sender, EventArgs e)
- {
- string[] filePaths = Directory.GetFiles("toUploading", "*.*", SearchOption.AllDirectories);
- progressBar1.Maximum = filePaths.Length;
- progressBar1.Minimum = 0;
- for (int i = 0; i<filePaths.Length; ++i)
- {
- filePaths[i] = filePaths[i].Substring(filePaths[i].IndexOf("\\")+1);
- Upload(filePaths[i], @"toUploading\"+filePaths[i]);
- progressBar1.Increment(1);
- }
- UpdatePatcher(filePaths);
- MessageBox.Show("your files have been uploaded");
- }
- void UpdatePatcher(string[] files)
- {
- string srvText = ReadSrvFile("patcher.txt");
- float version = float.Parse(srvText.Substring(srvText.LastIndexOf("version: ") + 9, srvText.IndexOf("\n", srvText.LastIndexOf("version: ")) - (srvText.LastIndexOf("version: ") + 9)));
- version += 0.1f;
- srvText += "\r\n\r\nversion: " + version.ToString() + "\r\nfile: ";
- for (int i = 0; i < files.Length; ++i)
- {
- srvText += " \"" + files[i] + "\"";
- }
- UploadText("patcher.txt", srvText);
- }
- public string ReadFile(string name)
- {
- return File.ReadAllText(name);
- }
- public static byte[] StrToByteArray(string str)
- {
- UTF8Encoding encoding = new UTF8Encoding();
- return encoding.GetBytes(str);
- }
- public string GetVersion()
- {
- string text = this.ReadFile("keyfile.txt");
- return text.Substring(9);
- }
- public void SetVersion(string ver)
- {
- ver = "version: " + ver;
- FileStream fs = new FileStream("keyfile.txt", FileMode.OpenOrCreate, FileAccess.Write);
- fs.Write(Form1.StrToByteArray(ver), 0, ver.Length);
- fs.Close();
- }
- public List<string> GetFiles(string ver)
- {
- List<string> files = new List<string>();
- string srvText = this.ReadSrvFile("patcher.txt");
- int place = srvText.IndexOf("version: ", srvText.IndexOf("version: " + ver)+1);
- if (place == -1)
- {
- MessageBox.Show("you already have the newest update");
- return files;
- }
- place = srvText.IndexOf("\"", srvText.IndexOf("file: ", place));
- while (srvText.IndexOf("\"", place + 1) != -1 && place != -1)
- {
- string str = srvText.Substring(place + 1, srvText.IndexOf("\"", place + 1)-(place+1));
- place = srvText.IndexOf("\"", srvText.IndexOf("\"", place + 1)+1);
- files.Add(str);
- }
- SetVersion(srvText.Substring(srvText.LastIndexOf("version: ") + 9, srvText.IndexOf("\n", srvText.LastIndexOf("version: ")) - (srvText.LastIndexOf("version: ") + 9)));
- return files;
- }
- public void DownloadFiles(List<string> files)
- {
- progressBar1.Maximum = files.Count;
- progressBar1.Minimum = 0;
- for (int i = 0; i < files.Count; ++i)
- {
- string str = ReadSrvFile(files[i]);
- CreateFile(files[i], str);
- progressBar1.Increment(1);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment