2016-11-01 1 views
0

Ich möchte Datei in meiner App in einen Ordner mit FileSavePicker kopieren. Mein Code:Wie kopiert man Datei von meiner App mit FileSavePicker UWP

var fileSavePicker = new FileSavePicker(); 
fileSavePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; 

var filedb = new[] { ".db" }; 
fileSavePicker.FileTypeChoices.Add("DB", filedb); 
fileSavePicker.SuggestedFileName = "BACKUPDB" + System.DateTime.Now.Day + "-" + System.DateTime.Now.Month + "-" + System.DateTime.Now.Year; 

//var pathDB = Path.Combine(ApplicationData.Current.LocalFolder.Path, "file.db"); 

try 
{ 
    StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("file.db"); 
    StorageFile localfile = await fileSavePicker.PickSaveFileAsync(); 
    fileSavePicker.SuggestedSaveFile = file; 

    if (file != null) 
    { 
     Debug.WriteLine("file Exists!!"); 
     var fileToSave = await fileSavePicker.PickSaveFileAsync(); 

     .... 

aber meine gespeicherte Datei hat eine Größe 0.

Ich fand, wie Textdateien zu speichern, aber meine Datei ist nicht Text.

+0

Sie haben den Code nicht eingefügt, der die eigentliche Dateikopie ausführt. –

+0

das ist eine Frage, die ich nicht kenne. Ich habe versucht, wie es im Code ist und die Datei mit null Größe gespeichert – Rodrigo

+0

thx für Aufmerksamkeit. Ich fand es Lösung hier: http://StackOverflow.com/Questions/15305758/Export-Sqlite-Database-from-windows- store-app – Rodrigo

Antwort

1

Sie können die Methode CopyAndReplaceAsync verwenden, um Ihre lokale Datei in die ausgewählte Datei zu kopieren.

var fileSavePicker = new Windows.Storage.Pickers.FileSavePicker(); 
fileSavePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; 

var filedb = new[] { ".db" }; 
fileSavePicker.FileTypeChoices.Add("DB", filedb); 
fileSavePicker.SuggestedFileName = "BACKUPDB" + System.DateTime.Now.Day + "-" + System.DateTime.Now.Month + "-" + System.DateTime.Now.Year; 

//var pathDB = Path.Combine(ApplicationData.Current.LocalFolder.Path, "file.db"); 

try 
{ 
    StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("file.db"); 
    StorageFile localfile = await fileSavePicker.PickSaveFileAsync(); 

    if (file != null) 
    { 
     Debug.WriteLine("file Exists!!"); 
     await file.CopyAndReplaceAsync(localfile); 
    } 
} 
catch(Exception ex) 
{ 
    Debug.WriteLine(ex); 
} 
+0

Perfekt, danke, ich habe auch mit diesem: https://stackoverflow.com/questions/15305758/export-sqlite-database-from-windows-store-app/15309471#15309471 aber das ist besser, weil schneller. Jetzt werde ich Prozedur mit FileOpenPicker() umkehren – Rodrigo

Verwandte Themen