从另一个UWP应用程序获取数据

从另一个UWP应用程序获取数据,uwp,windows-10-universal,Uwp,Windows 10 Universal,我不想访问另一个UWP应用程序中存储的数据。我看到您可以使用以下代码将数据保存在UWP应用程序的LocalState文件夹中: Windows.Storage.ApplicationDataContainer localSettings=Windows.Storage.ApplicationData.Current.localSettings; Windows.Storage.StorageFolder localFolder=Windows.Storage.ApplicationData.Cu

我不想访问另一个UWP应用程序中存储的数据。我看到您可以使用以下代码将数据保存在UWP应用程序的
LocalState
文件夹中:

Windows.Storage.ApplicationDataContainer localSettings=Windows.Storage.ApplicationData.Current.localSettings;
Windows.Storage.StorageFolder localFolder=Windows.Storage.ApplicationData.Current.localFolder;
Windows.Globalization.DateTimeFormatting.DateTimeFormatter格式化程序=
新Windows.Globalization.DateTimeFormatting.DateTimeFormatter(“longtime”);
StorageFile sampleFile=await localFolder.CreateFileAsync(“example.txt”,
CreationCollisionOption.ReplaceExisting);
等待FileIO.WriteTextAsync(sampleFile,formatter.Format(DateTime.Now));

因此,通过这段代码,我在我的第一个UWP项目中创建了一个名为example.txt的文件


是否可以从第二个UWP项目访问example.txt?如果是,如何?

UWP中的应用程序是沙盒,因此您无法如此轻松地访问它们的存储。共享数据有两个选项:

  • 您可以使用任何具有适当功能的应用程序都可以访问的
  • 您可以在用户选择的位置
  • 您可以选择一个应用程序将有权访问的文件夹
  • 或者,您可以注册接收特定内容
      UWP中的应用程序是沙盒,因此您无法如此轻松地访问它们的存储。共享数据有两个选项:

      • 您可以使用任何具有适当功能的应用程序都可以访问的
      • 您可以在用户选择的位置
      • 您可以选择一个应用程序将有权访问的文件夹
      • 或者,您可以注册接收特定内容
        是的。这只有在两个应用程序都由同一发布者发布时才可能实现

        此文件夹缓存称为
        PublisherCacheFolder

        下面是一个例子,将详细解释这一点

        您需要在appmanifest中添加扩展,然后才能在所有希望共享数据的应用中执行此操作

        <Extensions>  
          <Extension Category="windows.publisherCacheFolders">  
            <PublisherCacheFolders>  
              <Folder Name="Downloads" />  
            </PublisherCacheFolders>  
          </Extension>  
        </Extensions>
        
        
        
        有一个很好的视频解释了这一点。跳到第19分钟

        下面是另一个的简单写和读方法

        async void WritetoPublisherFolder(字符串文本)
        {  
        StorageFolder SharedFolder=Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder(“CommonFolder”);
        StorageFile newFile=wait SharedFolder.CreateFileAsync(“SharedFile.txt”,CreationCollisionOption.OpenIfExists);
        wait FileIO.WriteTextAsync(newFile,Text);
        }  
        异步任务ReadFromSharedFolder()
        {  
        StorageFolder SharedFolder=Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder(“CommonFolder”);
        StorageFile newFile=wait SharedFolder.GetFileAsync(“SharedFile.txt”);
        var text=await FileIO.ReadTextAsync(newFile);
        返回文本;
        }
        
        是。这只有在两个应用程序都由同一发布者发布时才可能实现

        此文件夹缓存称为
        PublisherCacheFolder

        下面是一个例子,将详细解释这一点

        您需要在appmanifest中添加扩展,然后才能在所有希望共享数据的应用中执行此操作

        <Extensions>  
          <Extension Category="windows.publisherCacheFolders">  
            <PublisherCacheFolders>  
              <Folder Name="Downloads" />  
            </PublisherCacheFolders>  
          </Extension>  
        </Extensions>
        
        
        
        有一个很好的视频解释了这一点。跳到第19分钟

        下面是另一个的简单写和读方法

        async void WritetoPublisherFolder(字符串文本)
        {  
        StorageFolder SharedFolder=Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder(“CommonFolder”);
        StorageFile newFile=wait SharedFolder.CreateFileAsync(“SharedFile.txt”,CreationCollisionOption.OpenIfExists);
        wait FileIO.WriteTextAsync(newFile,Text);
        }  
        异步任务ReadFromSharedFolder()
        {  
        StorageFolder SharedFolder=Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder(“CommonFolder”);
        StorageFile newFile=wait SharedFolder.GetFileAsync(“SharedFile.txt”);
        var text=await FileIO.ReadTextAsync(newFile);
        返回文本;
        }
        
        您还可以创建一个可以共享任何数据的AppService。基本上,提供商将托管该服务,需要数据的应用程序应该使用该服务


        更多信息:

        您还可以创建一个可以共享任何数据的AppService。基本上,提供商将托管该服务,需要数据的应用程序应该使用该服务


        更多信息:

        非常感谢,这就是我要找的!非常感谢,这就是我要找的!