【发布时间】:2016-06-08 14:30:15
【问题描述】:
例如,如何仅从包含四行的文本文件中读取第二行?
内部存储是否与资源管理器中的计算机\Windows 手机\电话相同?
【问题讨论】:
-
你能分享一些你的代码吗?挑战究竟是什么?您遇到了什么问题?
标签: uwp
例如,如何仅从包含四行的文本文件中读取第二行?
内部存储是否与资源管理器中的计算机\Windows 手机\电话相同?
【问题讨论】:
标签: uwp
由于您的问题中没有太多细节,我假设您需要的文件已与应用程序一起部署。
public async Task<string> ReadLine(int lineIndex)
{
var path = @"test.txt";
var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
var file = await folder.GetFileAsync(path);
var lines = await Windows.Storage.FileIO.ReadLinesAsync(file);
if (lines.Count >= lineIndex + 1)
{
return line[lineIndex];
}
else
{
return null;
}
}
如果文件未随应用部署,请从此处将文件夹属性更改为另一个:Windows.Storage.ApplicationData.Current。 (本地文件夹、临时文件夹、漫游文件夹)
【讨论】:
您好,从手机内存中读取和写入文件非常容易。看看下面的示例。我演示了如何将文本文件写入到 IsolatedStorage 中然后读取它。但是,如果您想从 SD 卡读取或写入,那里的东西就不那么明亮了。看看 MSDN 文章here。
IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication();
if (isoStore.FileExists("TestFile.txt"))
{
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("TestFile.txt", FileMode.Open, isoStore))
{
using (StreamReader reader = new StreamReader(isoStream))
{
var rows = reader.ReadToEnd().Split(new string[] { "\r\n" }, StringSplitOptions.None);
await new MessageDialog(rows[1]).ShowAsync(); //This is second row because the arrays are zero based
}
}
}
else
{
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("TestFile.txt", FileMode.CreateNew, isoStore))
{
using (StreamWriter writer = new StreamWriter(isoStream))
{
writer.WriteLine("1. Hello from first row");
writer.WriteLine("2. Hello from second row");
writer.WriteLine("3. Hello from third row");
writer.WriteLine("4. Hello from fourth row");
writer.WriteLine("5. Hello from fifth row");
}
}
}
【讨论】: