2016-11-01 16 views
0

FileSavePickerを持つフォルダに自分のアプリでコピーファイルをコピーします。マイコード:私のアプリからファイルをコピーする方法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(); 

     .... 

が、私の保存されたファイルのサイズが0

を持っている私は、テキストファイルを保存する方法を見つけたが、私のファイルは、テキストではありません。

+0

実際のファイルコピーを行うコードは含まれていません。 –

+0

これは私が知りません質問です。私はそれがコード内にあり、ゼロサイズで保存されたファイルを試みた。attention.iのために – Rodrigo

+0

thxがここに解決策を見つけた: http://stackoverflow.com/questions/15305758/export-sqlite-database-from-windows- store-app – Rodrigo

答えて

1

CopyAndReplaceAsyncメソッドを使用すると、ローカルファイルを選択したファイルにコピーできます。

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

パーフェクト、ありがとう、私もこれを使用しました:https://stackoverflow.com/questions/15305758/export-sqlite-database-from-windows-store-app/15309471#15309471 より速く。 今、FileOpenPicker()を使用してプロシージャを逆にします。 – Rodrigo