Проверьте, существует ли файл XML в памяти WP7 - PullRequest
1 голос
/ 31 октября 2011

Я делаю загрузку XML-файла из Интернета на телефон памяти. Я хочу посмотреть, доступно ли подключение к Интернету, чтобы выполнить загрузку, и если нет, отправить сообщение. И если нет, то я хочу посмотреть, присутствует ли файл xml в памяти ... если он есть, приложение не загрузится.

Проблема в том, что я не знаю, как выполнить условие «если», чтобы проверить, существует ли файл.

У меня есть этот код:

public MainPage()
{
    public MainPage()
    {
        if (NetworkInterface.GetIsNetworkAvailable())
        {
            InitializeComponent();

            WebClient downloader = new WebClient();
            Uri xmlUri = new Uri("http://dl.dropbox.com/u/32613258/file_xml.xml", UriKind.Absolute);
            downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(Downloaded);
            downloader.DownloadStringAsync(xmlUri);
        }
        else
        {
            MessageBox.Show("The internet connection is not available");
        }
    }

    void Downloaded(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Result == null || e.Error != null)
        {
            MessageBox.Show("There was an error downloading the xml-file");
        }
        else
        {
            IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
            var stream = new IsolatedStorageFileStream("xml_file.xml", FileMode.Create, FileAccess.Write, myIsolatedStorage);
            using (StreamWriter writeFile = new StreamWriter(stream))
            {
                string xml_file = e.Result.ToString();
                writeFile.WriteLine(xml_file);
                writeFile.Close();
            }
        }
    }
}

Я не знаю, как проверить, существует ли файл с условием: (

1 Ответ

5 голосов
/ 31 октября 2011

Класс IsolatedStorageFile имеет метод с именем FileExists.См. Документацию здесь Если вы хотите проверить только имя файла, которое вы также можете использовать, используйте метод GetFileNames, который дает вам список имен файлов файлов в корне изолированного хранилища. Документация здесь.

IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
if(myIsolatedStorage.FileExists("yourxmlfile.xml))
{
    // do this
}
else
{
    // do that
}

или

IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
string[] fileNames = myIsolatedStorage.GetFileNames("*.xml")
foreach (string fileName in fileNames)
{
    if(fileName == "yourxmlfile.xml")
    {
      // do this
    }
    else
    {
      // do that
    }
}

Я не буду гарантировать, что приведенный выше код будет работать точно, но это общая идея о том, как идтиоб этом.

...