C# Metro获取StorageFile的base64字符串

C# Metro获取StorageFile的base64字符串,c#,windows-8,windows-runtime,microsoft-metro,winrt-xaml,C#,Windows 8,Windows Runtime,Microsoft Metro,Winrt Xaml,我需要文件选择器选择的文件的base64字符串 //file is a StorageFile FileRandomAccessStream stream = (FileRandomAccessStream)await file.OpenAsync(FileAccessMode.ReadWrite); using (MemoryStream ms = new MemoryStream()) { Stream ss1 = stream.AsStream(); ; s1.Copy

我需要文件选择器选择的文件的base64字符串

//file is a StorageFile

FileRandomAccessStream stream = (FileRandomAccessStream)await file.OpenAsync(FileAccessMode.ReadWrite);

using (MemoryStream ms = new MemoryStream())
{
    Stream ss1 = stream.AsStream(); ;
    s1.CopyTo(ms);

}
byteArray = ms.ToArray();
string imageStringSixtyfour = Convert.ToBase64String(byteArray);
if (imageStringSixtyfour != null)
return imageStringSixtyfour;
返回的字符串总是空的,有什么想法吗?大多数在线示例都包含不属于W8平台的类

private async Task<string> StorageFileToBase64(StorageFile file)
{
    string Base64String = "";

    if (file != null)
    {
        IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read);
        var reader = new DataReader(fileStream.GetInputStreamAt(0));
        await reader.LoadAsync((uint)fileStream.Size);
        byte[] byteArray = new byte[fileStream.Size];
        reader.ReadBytes(byteArray);
        Base64String = Convert.ToBase64String(byteArray);
    }

    return Base64String;
}
专用异步任务StorageFileToBase64(StorageFile)
{
字符串Base64String=“”;
如果(文件!=null)
{
irandomaccesstream fileStream=await file.OpenAsync(FileAccessMode.Read);
var reader=newdatareader(fileStream.GetInputStreamAt(0));
wait reader.LoadAsync((uint)fileStream.Size);
byte[]byteArray=新字节[fileStream.Size];
reader.ReadBytes(byteArray);
Base64String=Convert.ToBase64String(byteArray);
}
返回Base64String;
}

谢谢你。。。过了一会儿,a找到了DataReader类,它工作得很好,非常受欢迎