using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Reflection;
namespace UpdataMyGame
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
} private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
WebClient webClient = new WebClient();
webClient.DownloadFile("http://localhost/Web/update.txt", "update.txt"); StreamReader sr = new StreamReader("update.txt"); List<UpdateFile> files = new List<UpdateFile>(); string version = sr.ReadLine();
//将应用程序更名拷贝
File.Copy(@"MyGame.exe", "MyGame_old.exe", true);
//反射备份的应用程序 得到版本号
Assembly assembly = Assembly.LoadFile(Application.StartupPath + @"\MyGame_old.exe");
string currentVersion = assembly.GetName().Version.ToString();
assembly = null;
//如果版本号不一致 升级程序
if (currentVersion != version)
{
//读出有几个文件需要更新
int newFileCount = int.Parse(sr.ReadLine());
for (int i = 0; i < newFileCount; i++)
{
//取得文件下载路径和文件名
UpdateFile updateFile = new UpdateFile();
updateFile.FileName = sr.ReadLine();
updateFile.DownLoadPath = sr.ReadLine();
files.Add(updateFile);
}
foreach (UpdateFile file in files)
{
WebClient webClientNew = new WebClient();
//更新每个文件 - 注意web服务器的配置
webClientNew.DownloadFile(file.DownLoadPath, file.FileName);
}
MessageBox.Show("升级成功!");
}
else
{
MessageBox.Show("您的游戏已经是最新版本!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}我的不解就是红色部分虽然是循环,也是i没有类似()[]的方法,如何能够一个一个循环读取地址的?
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Reflection;
namespace UpdataMyGame
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
} private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
WebClient webClient = new WebClient();
webClient.DownloadFile("http://localhost/Web/update.txt", "update.txt"); StreamReader sr = new StreamReader("update.txt"); List<UpdateFile> files = new List<UpdateFile>(); string version = sr.ReadLine();
//将应用程序更名拷贝
File.Copy(@"MyGame.exe", "MyGame_old.exe", true);
//反射备份的应用程序 得到版本号
Assembly assembly = Assembly.LoadFile(Application.StartupPath + @"\MyGame_old.exe");
string currentVersion = assembly.GetName().Version.ToString();
assembly = null;
//如果版本号不一致 升级程序
if (currentVersion != version)
{
//读出有几个文件需要更新
int newFileCount = int.Parse(sr.ReadLine());
for (int i = 0; i < newFileCount; i++)
{
//取得文件下载路径和文件名
UpdateFile updateFile = new UpdateFile();
updateFile.FileName = sr.ReadLine();
updateFile.DownLoadPath = sr.ReadLine();
files.Add(updateFile);
}
foreach (UpdateFile file in files)
{
WebClient webClientNew = new WebClient();
//更新每个文件 - 注意web服务器的配置
webClientNew.DownloadFile(file.DownLoadPath, file.FileName);
}
MessageBox.Show("升级成功!");
}
else
{
MessageBox.Show("您的游戏已经是最新版本!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}我的不解就是红色部分虽然是循环,也是i没有类似()[]的方法,如何能够一个一个循环读取地址的?
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}和
DbDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
//
}
是一样的