2012-05-09 113 views
1

我可以第一次讀取文本文件。當我嘗試下次讀取同一文本文件時,它會退出該函數並返回空值。無法讀取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); 
    } 

請給我建議,如何解決這個問題..

感謝 SheikAbdullah

回答

4

不要忘了readtextFile是一個異步方法。當你打電話時,它實際上會在到達第一個await時返回,因此此時configData尚未設置。你應該從方法返回的值,伺機方法:

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); 

即使你想存儲configData在一個領域,你還是你讀值之前需要await readtextFile

+0

非常感謝..這解決了我的問題.... – SheikAbdullah

相關問題