2017-02-08 6 views
0

Ich möchte auf Daten zugreifen, die in einer anderen UWP-Anwendung gespeichert sind. Ich sah, dass Sie Daten im LocalState Ordner Ihrer UWP-Anwendung mit diesem Code speichern:Daten von einer anderen UWP-Anwendung abrufen

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; 
Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 
Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
      new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime"); 

StorageFile sampleFile = await localFolder.CreateFileAsync("example.txt", 
         CreationCollisionOption.ReplaceExisting); 
await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now)); 

Here is the official documentation.

Also mit diesem Code erstelle ich eine Datei namens beispiel.txt in meinem ersten UWP-Projekt.

Ist es möglich, von einem zweiten UWP-Projekt auf die example.txt zuzugreifen? Wenn ja, wie?

Antwort

1

Ja. Dies ist nur möglich, wenn beide Apps von demselben Publisher veröffentlicht werden.

Dieser Ordner-Cache wird PublisherCacheFolder genannt

Hier ist ein Blog Post, die dies im Detail erläutern.

Sie müssen in Ihrem AppManifest eine Erweiterung hinzufügen, bevor dies in allen Apps möglich ist, für die Sie Daten freigeben möchten.

<Extensions> 
    <Extension Category="windows.publisherCacheFolders"> 
    <PublisherCacheFolders> 
     <Folder Name="Downloads" /> 
    </PublisherCacheFolders> 
    </Extension> 
</Extensions> 

Es gibt ein gutes Video, das darüber auf Channel9 erklärt. Springe zur 19. Minute.

Unten sind einfache Schreib- und Lesemethoden von einem anderen Blog.

async void WritetoPublisherFolder(string Text) 
{ 
    StorageFolder SharedFolder = Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder("CommonFolder"); 
    StorageFile newFile = await SharedFolder.CreateFileAsync("SharedFile.txt", CreationCollisionOption.OpenIfExists); 
    await FileIO.WriteTextAsync(newFile, Text); 
} 

async Task<string> ReadFromSharedFolder() 
{ 
    StorageFolder SharedFolder = Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder("CommonFolder"); 
    StorageFile newFile = await SharedFolder.GetFileAsync("SharedFile.txt"); 
    var text = await FileIO.ReadTextAsync(newFile); 
    return text; 
} 
+1

Vielen Dank, das ist das, was ich suche! – fandro

2

Anwendungen in UWP sind Sandboxed, so dass Sie nicht so einfach auf ihren Speicher zugreifen können. Es gibt mehrere Möglichkeiten für den Austausch von Daten:

Verwandte Themen