!checkiteexists在当前上下文SQLite中不存在 - c#

时间:2015-10-12 06:21:41

标签: c# sqlite windows-phone-8.1

我一直在使用SQLite来编写我正在编写的应用程序,当我创建一个类时,每次我使用!checkfileexists,它总是不正确的。我错过了使用命名空间或引用吗?这是代码:

public async Task<bool> onCreate(string databasePath)
{
    try
    {
        if (!CheckFileExists(databasePath).Result)
        {
            using (databaseConnection = new SQLiteConnection(databasePath))
            {

            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

函数CheckFileExists位于System.Windows.Forms中,因此无法在Windows Phone 8.1项目中执行。 System.IO.File.Exists方法也不可用。

您可以编写自己的CheckFileExists功能。

public async Task<bool> onCreate(string databasePath)
{
    try
    {
        if (!await CheckFileExists(databaseName))
        {
            using (databaseConnection = new SQLiteConnection(databaseName))
            {

            }
        }
    }
}


public static async System.Threading.Tasks.Task<bool> CheckFileExists(string filename)
{
    bool exists = true;
    try
    {
         Windows.Storage.StorageFile file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(filename);
    }
    catch (Exception)
    {
         exists = false;
    }
    return exists;
}

我不确定您要对此做些什么,但您的代码建议您要创建数据库并且永​​远不要再使用它。

一些说明:

您可以自由访问的唯一文件夹(和子文件夹)是Current Local Folder

如果您想使用任何其他目录,您需要获得用户的许可,这可以使用文件夹选择器完成,或者在Appmanifest中编辑功能以获取音乐和图片文件夹。

希望这有帮助。

答案 1 :(得分:-1)

CheckFileExists可以写为File.Exists使用System.IO. CheckFileExists似乎不是我所知道的任何命名空间中的对象。您可能必须为CheckFileExists创建任务并添加任何缺失的代码。