WP7 изолированный
-
26-10-2019 - |
Вопрос
Используя C#, я загружаю файл из URL -адреса, который пользователь входит в телефон. Когда он записывает файл в IsolatedStorage, он пишет слишком много байтов в файл, и, следовательно, программа, используемая для открытия этих файлов, не откроется.
Когда я отлаживаю, размер битов составляет 451 258 байтов, но когда файл экспортируется из изолированного стеклянга, он составляет 454 656 байтов. Он заполняет оставшееся пространство пространствами. Есть ли в любом случае, чтобы настроить этот размер файла? Обрезать дополнительное место в конце и сохранить?
Прости мое невежество, так как я новичок в C# и WP7 Development. Я был бы очень признателен за помощь.
Вот мой код:
public void readCompleteCallback(Object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
try
{
//string fileName = txtUrl.Text.Substring(txtUrl.Text.LastIndexOf("/") + 1).Trim();
string fileName = "DownloadedNZB.nzb";
bool isSpaceAvailable = IsSpaceIsAvailable(e.Result.Length);
if (isSpaceAvailable)
{
// Save mp3 to Isolated Storage
using (var isfs = new IsolatedStorageFileStream(fileName,
FileMode.CreateNew,
IsolatedStorageFile.GetUserStoreForApplication()))
{
long fileLen = e.Result.Length;
byte[] b = new byte[fileLen];
e.Result.Read(b, 0, b.Length);
isfs.Write(b, 0, b.Length);
isfs.Flush();
isfs.Close();
MessageBox.Show("File downloaded successfully");
}
}
else
{
MessageBox.Show("Not enough to save space available to download the file");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show(e.Error.Message);
}
}
Решение
Заменять
e.Result.Read(b, 0, b.Length);
isfs.Write(b, 0, b.Length);
isfs.Flush();
isfs.Close();
с
var numberOfBytesRead = e.Result.Read(b, 0, b.Length);
isfs.Write(b, 0, numberOfBytesRead);
isfs.Flush();
isfs.Close();
Не связан с StackOverflow