我正在为一个朋友和我正在创建的游戏创建一个启动器。
我正在尝试读取更新清单,以获取需要下载的新文件
现在我已经把文件摆好了,但是我不知道怎么读。
这些文件的行如下所示,则像checksum.md5这样的文件将包含d41d8cd98f00b204e9800998ecf8427e *apples.txt
我被难住了,我试着把它放在两个不同的列表中
thearray.replace(" ", "").split('*');但是它很长,看起来我不需要这么长的代码。我需要从文件行中读取当前目录中的文件(如果我知道如何拆分/组织它,我可以做到这一点)
现在,这就是我试图摆脱的东西,但却被难倒了..
var main = new frmMain();
if (File.Exists("checksums.md5")) { File.Delete("checksums.md5"); }
main.Download(updateurl + "checksums.md5", "checksums.md5");
string[] checksumfile = System.IO.File.ReadAllText("checksums.md5").Replace(" ", "").Split('*');我现在应该怎么做才能让它以我想要的方式工作呢?使用checksum.md5检查所有文件,并将需要更新的文件放入列表中,以便稍后更新。
需要说明的是(我没有很好地解释) checksum.md5中的文件的路径如下
d41d8cd98f00b204e9800998ecf8427e *folder\apples.txt
在网站上,文件将位于updateurl/files/folder/apples.txt中
在客户端/启动器上,该文件应为.\folder\apples.txt格式
感谢您的阅读!我知道如何做基本的事情,比如,被使用的东西,只是这个想法把我难住了..
public static string updateurl = "http://localhost/files/";发布于 2013-07-01 15:40:26
看看这个:http://www.regular-expressions.info/repeat.html
这是一个非常有用的操作文本的工具。
如果您的文件如下所示:
校验和*文件路径
校验和*文件路径
checksum*文件路径。。。
这个模式应该是有效的:
string pattern = @"(?<= [*])[^\r\n]*";
var matches = Regex.Matches(@sourceString, @pattern);
foreach (Match m in matches)
{
Console.Writeline(m.Value);
}Regex类还有一个比String.Replace灵活得多的Replace方法
编辑
我不知道这是有帮助还是我又完全误解了你:)一些如何组织你的数据的想法:
List<FileData> result = (from a in Regex.Split(s, @"\r\n").Cast<string>().Select(a => Regex.Split(a, @" [*]"))
select new FileData
{
Checksum= a[0],
Filepath = a[1],
ShouldUpdate = FileData.CheckShouldUpdate(a[0],a[1])
}).ToList();或者:
List<FileData> result = (from a in Regex.Split(s, @"\r\n").Cast<string>().Select(a => Regex.Split(a, @" [*]"))
where FileData.CheckShouldUpdate(a[0], a[1])
select new FileData
{
Checksum = a[0],
Filepath = a[1]
}).ToList();..。
class FileData
{
public string Checksum { get; set; }
public string Filepath { get; set; }
public bool ShouldUpdate { get; set; }
public FileData() { }
public static bool CheckShouldUpdate(string checksum, string filename)
{
// some check logic here...
return true;
}
}https://stackoverflow.com/questions/17397863
复制相似问题