2012-05-09 6 views
1

Je peux lire le fichier texte pour la première fois. Lorsque j'essaie de lire le même fichier texte la fois suivante, il quitte la fonction et renvoie une valeur nulle.Impossible de lire le fichier texte dans les applications Metro?

static string configData = ""; 
    async public void readtextFile(string folder, string file) 
    { 
     StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder); 
     StorageFile storageFile = await storageFolder.GetFileAsync(file); 
     configData = await FileIO.ReadTextAsync(storageFile); 
    } 

S'il vous plaît me suggérer, comment résoudre ce problème ..

Merci SheikAbdullah

Répondre

4

Ne pas oublier que readtextFile est une méthode asynchrone. Quand vous l'appelez, il revient quand il atteint le premier await, donc à ce stade, configData n'est pas encore défini. Vous devez retourner la valeur à partir de la méthode, et attendre la méthode:

async public Task<string> readtextFile(string folder, string file) 
{ 
    StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder); 
    StorageFile storageFile = await storageFolder.GetFileAsync(file); 
    string configData = await FileIO.ReadTextAsync(storageFile); 
    return configData; 
} 

... 

string configData = await readTextFile(folder, file); 

Même si vous voulez stocker configData dans un domaine, vous avez encore besoin await readtextFile avant de lire la valeur.

+0

merci beaucoup .. cela résout mon problème .... – SheikAbdullah

Questions connexes