2012-08-31 4 views
0

J'utilise le "Sqlite pour Windows Runtime" et sqlite-net (juste comme décrit à http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspx) pour développer une application Windows 8 Metro, juste. Si je veux ouvrir une base de données au programme-répertoire est pas un problème:Ouvrir extern SQLite-Database dans une application Windows 8 Metro?

var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite"); 
using (var db = new SQLite.SQLiteConnection(dbPath)) { 
    ... 
} 

Mais quand je veux utiliser un chemin extern comme ceci:

var dbPath = "C:\\Users\\xxxxxx\\db.sqlite"; 

alors une erreur se produit avec « Impossible d'ouvrir fichier de base de données ". Pourquoi? Ici, j'utilise C#, normalement j'utilise C++, mais pour ce problème, je suis sûr que cela n'a pas d'importance;)

+0

Pourquoi diable choisiriez-vous d'utiliser un chemin externe? Ma suggestion est d'utiliser Visual Studio pour vérifier que le chemin que vous essayez réellement d'utiliser est correct. Cela montre très peu de recherche de votre part cela peut facilement être résolu après avoir passé 5 minutes à déboguer le code. –

+0

Etes-vous autorisé à accéder à ce chemin depuis l'explorateur? Vous pouvez seulement accéder au répertoire de l'utilisateur actuel ... en tant qu'application "dépendant de l'utilisateur". – neagoegab

+0

Il existe une raison pour laquelle ce code utilise 'Windows.Storage.ApplicationData.Current.LocalFolder.Path', car c'est l'un des rares emplacements auxquels une application Metro peut accéder. –

Répondre

6

Vous ne pouvez pas sélectionner des fichiers arbitraires sur le système de fichiers. Voir here pour plus de détails.

Par défaut, vous pouvez accéder à ces emplacements:

  • application répertoire d'installation
  • emplacements de données d'application
  • utilisateur dossier Téléchargements

et

En outre, votre application peut accéder à certains o f les fichiers sur les périphériques connectés par défaut. Ceci est une option si votre application utilise le AutoPlay Device extension pour se lancer automatiquement lorsque les utilisateurs connectent un périphérique, comme une caméra ou une clé USB, à leur système. Les fichiers auxquels votre application peut accéder sont limités à des types de fichiers spécifiques spécifiés via les déclarations d'association de type de fichier dans le manifeste de votre application. vous pouvez également accéder aux fichiers et dossiers sur un périphérique amovible par appelant le sélecteur de fichiers (en utilisant FileOpenPicker et FolderPicker) et permettant à l'utilisateur de choisir des fichiers et des dossiers pour votre application à accéder. En savoir comment utiliser le sélecteur de fichiers dans Quickstart: Accessing files with file pickers.

Si vous avez les bonnes capacités déclarées vous pouvez également accéder à:

Une combinaison des fonctionnalités suivantes est nécessaire. La maison et travail capacité des réseaux:

PrivateNetworkClientServer

Et au moins un Internet et la capacité des réseaux publics:

InternetClient InternetClientServer

Et, le cas échéant, le domaine capacité des pouvoirs:

EnterpriseAuthentication

Remarque Vous devez ajouter des associations de types de fichiers à votre manifeste d'application pour déclarer les types de fichiers spécifiques auxquels votre application peut accéder à cet emplacement.

+0

Est-ce que cela répond à votre question? – mydogisbox

1

Dans l'application Windows Metro ... Il ne prend en charge que la propriété sandbox d'une application.

Vous ne pouvez pas utiliser

var dbPath = "C:\\Users\\xxxxxx\\db.sqlite"; 

U seulement peut stocker des données dans le stockage ou l'application locale répertoire d'installation.

Veuillez éviter d'utiliser un autre chemin. ça ne marchera pas .

+0

J'ai essayé d'utiliser FilePicker et je n'arrive toujours pas à ouvrir le fichier SQLite dans la bibliothèque de documents. Ne devrais-je pas pouvoir? –

+0

@ kya baat hai, réponse parfaite :) :) –

+0

@ ScottNimrod ya ce qui ne sera pas possible –

Questions connexes