WP7: удалить IsolatedStorageFile - PullRequest
       24

WP7: удалить IsolatedStorageFile

0 голосов
/ 12 декабря 2011

Буду очень признателен за помощь в удалении файла из IsolatedStorage в WP7.Я в основном загружаю файл из Интернета, сохраняю его в изолированном хранилище, а затем загружаю в папку «Загрузки» в моем Dropbox.После того, как я загрузил его, я хотел бы удалить файл из изолированного хранилища, но при попытке сделать это получаю исключительные ошибки.

Вот мой код:

    public void readCompleteCallback(Object sender, OpenReadCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            try
            {
                //string fileName = txtUrl.Text.Substring(txtUrl.Text.LastIndexOf("/") + 1).Trim();
                string fileName = searchBox.Text + fileExt;
                //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];
                        var numberOfBytesRead = e.Result.Read(b, 0, b.Length);
                        isfs.Write(b, 0, numberOfBytesRead);
                        isfs.Flush();
                        isfs.Close();

                        isf = IsolatedStorageFile.GetUserStoreForApplication();
                        stream = isf.OpenFile(fileName, FileMode.Open);

                        MessageBox.Show("File downloaded successfully");

                        App.GlobalClient.UploadFileAsync("/Public/", fileName, stream, (response) =>
                            {
                                MessageBox.Show("Uploaded file to Dropbox OK.");
                            },
                         (error) =>
                         {
                             MessageBox.Show(error + "Cannot upload file to dropbox.");
                         });
                    }
                    //stream.Close();
                    isf.DeleteFile(searchBox.Text + fileExt);
                }
                else
                {
                    MessageBox.Show("Not enough to space available to download the file");
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        else
        {
            MessageBox.Show(e.Error.Message);
        }

    }

Я не могуПодумайте, где я ошибаюсь, но если бы кто-то мог указать мне правильное направление, я был бы признателен.

1 Ответ

0 голосов
/ 12 декабря 2011

Вы пытаетесь удалить файл внутри оператора, где файл еще не закрыт

UPD: загрузка выполняется асинхронно, поэтому вы можете удалить файл только после его завершения. Поместите свой код рядом с MessageBox.Show («Загруженный файл в Dropbox OK.»);

...