我正在尝试下载文件列表,但不确定如何继续。正如主题所述,我使用的是DropNet,以下是我尝试使用的下载文件的过程:
获取我的应用程序专用文件夹中所有文件的列表,并将它们作为字符串存储在列表中。
然后尝试执行以下操作:
foreach (string file in files)
{
_client.GetFileAsync("/" +file,
(response) =>
{
using(FileStream fs = new FileStream(path +file +".gttmp", FileMode.Create))
{
for(int i = 0; i < response.RawBytes.Length; i++)
{
fs.WriteByte(response.RawBytes[i]);
}
fs.Seek(0, SeekOrigin.Begin);
for(int i = 0; i < response.RawBytes.Length; i++)
{
if(response.RawBytes[i] != fs.ReadByte())
{
MessageBox.Show("Error writing data for " +file);
return;
}
}
}
},
(error) =>
{
MessageBox.Show("Could not download file " +file, "Error!");
});
}不幸的是,它似乎根本不起作用。有谁在使用DropNet,能给我推荐一些有用的东西吗?
发布于 2012-10-13 08:54:12
改用同步方法:
foreach (string file in files)
{
var fileBytes = _client.GetFile("/" + file);
using (FileStream fs = new FileStream(path +file + ".gttmp", FileMode.Create))
{
for (int i = 0; i < fileBytes.Length; i++)
{
fs.WriteByte(fileBytes[i]);
}
fs.Seek(0, SeekOrigin.Begin);
for (int i = 0; i < fileBytes.Length; i++)
{
if (fileBytes[i] != fs.ReadByte())
{
MessageBox.Show("Error writing data for " + file);
break;
}
}
}
}发布于 2013-09-09 12:55:32
你的异步下载文件的代码运行得很好,我尝试了下面的方法,它没有错误地进行。
client.GetFileAsync("/novemberrain.mp3",
(response) =>
{
using (FileStream fs = new FileStream(@"D:\novemberrain.mp3", FileMode.Create))
{
for (int i = 0; i < response.RawBytes.Length; i++)
{
fs.WriteByte(response.RawBytes[i]);
}
}
MessageBox.Show("file downloaded");
},
(error) =>
{
MessageBox.Show("error downloading");
});https://stackoverflow.com/questions/12868832
复制相似问题