c# - Why I can't upload sqlite file to the OneDrive? -
i developing windows runtime universal application.
i need upload database i'm using in application user's onedrive?
but filenotfound
exception occurs. know path correct.
since refer sqlite file, shows exception. if refer txt file, uploading process goes smoothly.
var authclient = new liveauthclient(); var authresult = await authclient.loginasync(new string[] { "wl.skydrive", "wl.skydrive_update" }); if (authresult.session != null) { var liveconnectclient = new liveconnectclient(authresult.session); var filetoupload = await applicationdata.current.localfolder.getfileasync("text.sqlite");//exception occurs here var filetoupload = await applicationdata.current.localfolder.getfileasync("text.txt");//no exception txt files var folderdata = new dictionary<string, object>(); folderdata.add("name", "folder") liveoperationresult operationresult = await liveconnectclient.postasync("me/skydrive", folderdata); liveuploadoperation uploadoperation = await liveconnectclient.createbackgrounduploadasync(folderid, "filename", filetoupload, overwriteoption.overwrite); liveoperationresult uploadresult = await uploadoperation.startasync(); handleuploadresult(uploadresult); }
first, should use background transfer task move file large , handle occasion when user gets call during transfer. background tasks key.
sort of this.
backgrounduploader uploader = new backgrounduploader(); uploadoperation upload = uploader.createupload(uri, file); await handleuploadasync(upload, true);
but before that, need assume user manipulate database. result, should copy database file before start upload. again, code:
var sourcefolder = windows.storage.applicationdata.current.localfolder; var sourcefile = await sourcefolder.createfileasync("database", windows.storage.creationcollisionoption.openifexists); var targetfolder = await sourcefolder.createfolderasync("~", windows.storage.creationcollisionoption.openifexists); var targetfile = await targetfolder.createfileasync(sourcefile.name, windows.storage.creationcollisionoption.replaceexisting); await sourcefile.moveandreplaceasync(targetfile);
this not idea, have feeling correct problems having. remember can query , ask if transfer done (do aren't doing two).
best of luck!
Comments
Post a Comment