写入InstalledLocation文件夹

时间:2016-01-13 00:19:29

标签: c# windows-store-apps uwp

我的Windows应用商店应用未通过认证,因为我正在编写InstalledLocation文件夹而不是本地文件夹。

我正在将现有的SQLite数据库加载到应用程序中(如果它尚不存在)。

以下是我的代码:

    private static string dbName = "flashcards2015a.db";
    private static string dbPath = string.Empty;

public MainPage()
    {
        this.InitializeComponent();
        LoadDataTask();
        LoadDecksNames();
    }
    private async void LoadDataTask()
    {
        await CreateIfNotExists(dbName);
    }
    private async Task CreateIfNotExists(string dbName)
    {
        if (await GetIfFileExistsAsync(dbName) == null)
        {
            StorageFile seedFile = await StorageFile.GetFileFromPathAsync(Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, dbName));
            await seedFile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder);
        }
    }

如何将代码更改为本地文件夹以获取db文件?

2 个答案:

答案 0 :(得分:0)

您需要将StorageFile.GetFileFromPathAsync中的Path.CombinWindows.ApplicationModel.Package.Current.InstalledLocation.Path更改为Windows.Storage.ApplicationData.Current.LocalFolder

更多信息:https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.localfolder

答案 1 :(得分:0)

您需要使用StorageFile.GetFileFromApplicationUriAsync()。

更多信息:https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965322(v=win.10)

var uri = new System.Uri("ms-appx:///images/logo.png");
var file = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(uri);