ApplicationData.GetPublisherCacheFolder(String) 方法

定义

获取当前应用的发布者的共享存储文件夹的指定子文件夹。

public:
 virtual StorageFolder ^ GetPublisherCacheFolder(Platform::String ^ folderName) = GetPublisherCacheFolder;
StorageFolder GetPublisherCacheFolder(winrt::hstring const& folderName);
public StorageFolder GetPublisherCacheFolder(string folderName);
function getPublisherCacheFolder(folderName)
Public Function GetPublisherCacheFolder (folderName As String) As StorageFolder

参数

folderName
String

Platform::String

winrt::hstring

要从当前应用的发布者的共享存储文件夹中获取的子文件夹。

返回

指定的子文件夹。

注解

Windows 运行时应用的强安全模型通常阻止应用在它们之间共享数据。 但是,对于来自同一发布者的应用来说,按用户共享文件和设置可能很有用。 作为应用发布者,你可以通过向应用清单添加扩展来注册应用以便与你发布的其他应用共享存储文件夹。

下面是发布多个应用时如何使用此共享存储文件夹的一些示例。

  • 共享文件。 例如,如果多个应用使用相同的图像或相同的自定义字体,则可以将这些文件保存在共享存储文件夹中。
  • 在自定义设置文件中共享用户的设置。 例如,如果多个应用使用温度,则可以在共享存储文件夹中的自定义设置文件中保存用户对摄氏度或华氏度首选项的副本。 但是,建议将用户的设置存储在每个应用或其他主位置,因为用户可以清除共享存储文件夹的内容。 当用户从发布者安装第一个应用时,将自动预配应用发布者的共享存储文件夹。

共享存储文件夹具有以下要求和限制。

  • 共享存储文件夹中的数据不会进行备份或漫游。 此外,用户可以清除共享存储文件夹的内容。
  • 不能使用此功能在不同发布者的应用之间共享数据。
  • 不能使用此功能在不同用户之间共享数据。
  • 共享存储文件夹没有版本管理。

注册应用以使用发布者的共享存储文件夹

在应用清单中手动输入类似于以下示例的 XML 以注册子文件夹。 无需创建这些子文件夹。 系统会自动预配它们。

<Package>
    …
    <Extensions>
        …
        <Extension Category="windows.publisherCacheFolders">
            <PublisherCacheFolders>
                <Folder Name="Folder1"/>
                <Folder Name="Folder2"/>
            </PublisherCacheFolders>
        </Extension>
        …
    </Extensions>
    …
</Package>

访问发布者的共享存储文件夹中的数据

调用 GetPublisherCacheFolder 方法,从共享存储文件夹中获取已注册的子文件夹之一。

然后使用 StorageFolder 类的属性和方法读取和写入共享文件夹中的文件和子文件夹。

对共享存储文件夹的访问具有以下要求和限制。

  • 没有默认子文件夹。 调用 GetPublisherCacheFolder 方法时,必须指定子文件夹。
  • 只能访问在应用清单中注册的子文件夹。
  • 无法访问共享存储文件夹的根目录。

清理发布者的共享存储文件夹中的数据

调用 ClearPublisherCacheFolderAsync 方法,从当前应用的发布者共享存储文件夹的指定子文件夹中清除文件和子文件夹。

卸载发布者的最后一个应用时,将自动清理共享存储文件夹。

保存在共享存储文件夹中的数据不会链接到保存数据的应用。 卸载保存数据的应用时,数据将保留在共享存储文件夹中,直到卸载来自同一发布者的最后一个应用。

适用于

另请参阅