admin管理员组

文章数量:1487745

Win8 文件相关操作

1.文件选择

var openPicker = new FileOpenPicker                 {                     ViewMode = PickerViewMode.Thumbnail,                     SuggestedStartLocation = PickerLocationId.ComputerFolder                 };                 openPicker.FileTypeFilter.Add("*");                 StorageFile file = await openPicker.PickSingleFileAsync();

2.获取文件大小

BasicProperties pro = await file.GetBasicPropertiesAsync();                 UInt64 size = pro.Size;

3.convert StorageFile to byte[]

  1. var bytes = await GetBtyeFromFile(file);  
  2. // This is the method to convert the StorageFile to a Byte[]        
  3. private async Task GetBtyeFromFile(StorageFile storageFile)  
  4. {  
  5.     var stream = await storageFile.OpenReadAsync();  
  6. using (var dataReader = new DataReader(stream))  
  7.     {  
  8.         var bytes = new byte[stream.Size];  
  9.         await dataReader.LoadAsync((uint)stream.Size);  
  10.         dataReader.ReadBytes(bytes);  
  11. return bytes;  
  12.     }  
  13. }  

4.convert the Byte[] to an Image

  1. var stream = new MemoryStream(bytes);  
  2.             var randomAccessStream = new MemoryRandomAccessStream(stream);  
  3.             var bi = new BitmapImage();  
  4.             bi.ImageFailed += (s, o) =>  
  5.             {  
  6. // This event is optional and is used to let us know if something went wrong
  7.                 var m = "Failure;  
  8.             };  
  9.             bi.SetSource(randomAccessStream);  

5.获取文件MD5

private async Task<string> GetMd5(StorageFile file)         {             HashAlgorithmProvider alg = Windows.Security.Cryptography.Core.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5);             var stream = await file.OpenStreamForReadAsync();             var inputStream = stream.AsInputStream();             const uint capacity = 100000000;             var buffer = new Windows.Storage.Streams.Buffer(capacity);             var hash = alg.CreateHash();             while (true)             {                 await inputStream.ReadAsync(buffer, capacity, InputStreamOptions.None);                 if (buffer.Length > 0)                     hash.Append(buffer);                 else                     break;             }             string hashText = CryptographicBuffer.EncodeToHexString(hash.GetValueAndReset()).ToUpper();             inputStream.Dispose();             stream.Dispose();             return hashText;         }

6. 生成GUID

1、Guid.NewGuid().ToString("N") 结果为:       38bddf48f43c48588e0d78761eaa1ce6

2、Guid.NewGuid().ToString("D") 结果为:        57d99d89-caab-482a-a0e9-a0a803eed3ba

3、Guid.NewGuid().ToString("B") 结果为:      {09f140d5-af72-44ba-a763-c861304b46f8}

4、Guid.NewGuid().ToString("P") 结果为:      (778406c2-efff-4262-ab03-70a77d09c2b5)

默认第2种效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2014-02-24,如有侵权请联系 cloudcommunity@tencent 删除filestreamtostringvarbuffer

本文标签: Win8 文件相关操作