[英]How to access a file in .NET Standard 2.0 DLL?
謝謝你的拜訪。
這是我面臨的問題,希望得到一些幫助。
我正在嘗試訪問 .NET 標准 DLL 中的文件。 如果我在測試 UWP 應用程序中使用 Windows.Storage 命名空間,則一切正常,如下所示:
Windows.Storage.StorageFile f = await StorageApplicationPermissions.FutureAccessList.GetFileAsync("TestPickedFileToken1");
txt.Text = await Windows.Storage.FileIO.ReadTextAsync(f);
真正的應用程序是訪問 .NETStandard 2.0 DLL 的 MVVM UWP 應用程序(針對 Fall Creators Update)。 問題是我找不到包含要添加到我的 DLL 的 Windows.Storage 命名空間的程序集。 它在 UWP 中可用,當我嘗試在 System.IO 中使用以下內容時,它使我可以訪問 DLL 中的路徑被拒絕錯誤:
string s = File.ReadAllText(filename);
我需要從 DLL 讀取/寫入文件。 如果我在 UWP 應用程序的 ViewModel 中讀/寫,它將起作用,但我不想這樣做。 是否可以在我的 DLL 中添加對 Windows.Storage 的引用,或者是否有訪問 DLL 中文件的替代方法?
在此先感謝您的幫助!
此帖子中的信息已過時。 請參考這里的例子。
不幸的是,如果沒有StorageFile
API,您將無法訪問任何文件路徑。 當用戶使用FilePicker
授予您對文件的訪問權限並且您以StorageFile
形式獲得引用時,您仍然無法直接使用System.IO
類訪問同一路徑。
同時,您不能在 .NET Standard 庫中使用StorageFile
API。 但是,您可以做的是從StorageFile
獲取System.IO.Stream
,然后您可以在 .NET Standard 庫中使用它:
var readStream = await file.OpenStreamForReadAsync();
var writeStream = await file.OpenStreamForWriteAsync();
要訪問此擴展方法,請確保using System.IO;
添加using System.IO;
到源代碼文件的頂部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.