从本地驱动器(资源)加载文件作为存储文件

时间:2013-06-22 08:37:14

标签: c# microsoft-metro windows-store-apps

我正在使用C#开发Windows 8应用程序。 我在这里使用FilePicker从我想要的位置选择文件, 我知道从本地驱动器中选择的文件路径。

我想将文件用作存储文件。

  StorageFile Newfile = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(Path); // Path is file path

  StorageFile file = await KnownFolders.PicturesLibrary.GetFileAsync(Path);

但这仅适用于我的项目所在地和另一个用于图片库中的加载文件。 任何人都可以给我正确的方法。

感谢。

1 个答案:

答案 0 :(得分:4)

WinRT具有类GetFileFromPathAsync()的{​​{1}}方法,但您无法使用该方法打开任何文件。只有选项才能使用StorageFile类。这对于获取保存到most recently used files listfuture access list的所有文件的令牌非常有用。要保存从StorageItemMostRecentlyUsedList访问的令牌,您需要使用FileOpenPicker类。在这里,我将为您提供如何为文件和文件保存令牌的方法。如何检索&和访问该文件。

保存令牌

StorageApplicationPermissions

使用令牌

检索文件

StorageItemMostRecentlyUsedList MRU = new StorageItemMostRecentlyUsedList();

StorageFile文件=等待MRU.GetFileAsync(令牌);

<强>更新

FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");

StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
    // Add to most recently used list with metadata (For example, a string that represents the date)
    string mruToken = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add(file, "20130622");

    // Add to future access list without metadata
    string faToken = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(file);  
}
else
{
    // The file picker was dismissed with no file selected to save
}