我有一个字符串数组fileContentArray,它包含一个filepath列表。
fileContentArray[0] D:\Downloads\KuGou\1.mp3
fileContentArray[1] E:\Downloads\2.mp3
fileContentArray[2] F:\KuGou\3.mp3
并且
List<StorageFile> files = new List<StorageFile>();
我想将文件添加到列表中
private async Task ReadListAsync()
{
StorageFolder sFolder = ApplicationData.Current.LocalFolder;
StorageFile sf = await sFolder.CreateFileAsync("List.txt", CreationCollisionOption.OpenIfExists);
using (IRandomAccessStream readStream = await sf.OpenAsync(FileAccessMode.Read))
{
using (DataReader dataReader = new DataReader(readStream))
{
UInt64 size = readStream.Size;
if (size <= UInt32.MaxValue)
{
UInt32 numBytesLoaded = await dataReader.LoadAsync((UInt32)size);
string fileContent = dataReader.ReadString(numBytesLoaded);
string[] fileContentArray = fileContent.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
List<StorageFile> files = new List<StorageFile>();
foreach (string filepath in fileContentArray)
{
StorageFile sff = await StorageFile.GetFileFromPathAsync(filepath);
files.Add(sff);
}
await AddStorageFilestoList(files);
}
}
}
}
但是当我运行代码时,它会在GetFileFromPathAsync时告诉我错误。
{System.UnauthorizedAccessException:拒绝访问。
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在MP3Tag.Views.MasterDetailPage.d__31.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在MP3Tag.Views.MasterDetailPage.d__10.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在MP3Tag.Views.MasterDetailPage.d__9.MoveNext()}
在我的另一个应用程序中,几乎相同的代码可用。
string strLastFile = (Application.Current as App).localSettings.Values["LastFile"] as string;
if (strLastFile != null)
{
try
{
file = await StorageFile.GetFileFromPathAsync(strLastFile);
await LoadFileAsync(file);
}
catch
{
//文件不存
}
}
它只是一个本地应用程序,读取一个txt文件,其中包含一个文件路径列表。 我想显示一些有关文件的信息。 如何以正确的方式使用它? THX。