metro File IO

Here are some code snips to replace the missing funcionality in System.IO
Extracted from the samples at http://code.msdn.microsoft.com/windowsapps


Common code:

using System.Threading.Tasks;
using Windows.Storage;
string filename = "sample.txt"
StorageFolder storageFolder = KnownFolders.DocumentsLibrary;



Creating a file

StorageFile sampleFile = await storageFolder.CreateFileAsync(filename);

Writing to a file

string data = "some data"
StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
StorageFile sampleFile = await storageFolder.GetFileAsync(filename);
IRandomAccessStream writeStream = await sampleFile.OpenAsync(FileAccessMode.ReadWrite);
IOutputStream outputStream = writeStream.GetOutputStreamAt(0);
DataWriter dataWriter = newDataWriter(outputStream);
dataWriter.WriteString(data);
await dataWriter.StoreAsync();
outputStream.FlushAsync().Start();

Reading from a file

StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
StorageFile sampleFile = await storageFolder.GetFileAsync(filename);
IRandomAccessStream readStream = await sampleFile.OpenAsync(FileAccessMode.Read);
IInputStream inputStream = readStream.GetInputStreamAt(0);
DataReader dataReader = newDataReader(inputStream);
uint numBytesLoaded = await dataReader.LoadAsync((uint) readStream.Size);
string result = dataReader.ReadString(numBytesLoaded);


Accessing FIle Properties

StorageFile sampleFile = await storageFolder.GetFileAsync(filename);
BasicProperties basicProperties = await sampleFile.Properties.GetBasicPropertiesAsync();
string result = "Filename: " + sampleFile.FileName +
"\nFile type: " + sampleFile.FileType +
"\nFile size: " + basicProperties.Size + " bytes" +
"\nDate modified: " + basicProperties.DateModified;


Adding a file to the Most Recently Used list

StorageFile sampleFile = await storageFolder.GetFileAsync(filename);
token = StorageApplicationPermissions.MostRecentlyUsedList.Add(sampleFile);


Displaying the contents of the MRU list

AccessListEntryView entries = StorageApplicationPermissions.MostRecentlyUsedList.Entries;
StringBuilder outputText = newStringBuilder("The MRU list contains the following items:\n\n");

foreach (AccessListEntry entry in entries)
{
StorageFile storageFile = awaitStorageApplicationPermissions.MostRecentlyUsedList.GetFileAsync(entry.Token);
outputText.Append(storageFile.FileName + "\n");
}
string result = outputText.ToString();


Opening a file from the MRU list

StorageFile sampleFile = awaitStorageApplicationPermissions.MostRecentlyUsedList.GetFileAsync(token);
IRandomAccessStream readStream = await sampleFile.OpenAsync(FileAccessMode.Read);
IInputStream inputStream = readStream.GetInputStreamAt(0);
DataReader dataReader = newDataReader(inputStream);
uint numBytesLoaded = await dataReader.LoadAsync((uint)readStream.Size);
string result = dataReader.ReadString(numBytesLoaded);


Copying a file
StorageFile sampleFile = await storageFolder.GetFileAsync(filename);
StorageFile copyFile = await sampleFile.CopyAsync(storageFolder, "sample - Copy.txt", NameCollisionOption.GenerateUniqueName);

Deleting a file

StorageFile sampleFile = await storageFolder.GetFileAsync("sample.txt");
await sampleFile.DeleteAsync();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值