2010-11-30 9 views
1

J'ai remarqué par défaut, les applications Silverlight 4 ont seulement accès en lecture à mes documents. Y a-t-il un moyen de faire confiance à une application Silverlight pour qu'elle puisse ouvrir un fichier depuis n'importe quel emplacement du système de fichiers.Comment permettre à silverlight de lire n'importe quel fichier sur le système de fichiers, pas seulement mes documents?

Je ne peux pas m'attendre à ce que mes utilisateurs doivent d'abord copier des fichiers dans le dossier mes documents avant le téléchargement, y a-t-il un moyen de faire entièrement confiance à une application argentée particulière?

Répondre

2

Directement pas. Silverlight ne fournit pas sa propre API pour accéder au système de fichiers en dehors de Mes documents. Mais vous pouvez toujours utiliser COM dans des applications à confiance élevée pour accéder à n'importe quel fichier du système.

dynamic Fso = AutomationFactory.CreateObject("Scripting.FileSystemObject"); 
    fso.CreateFolder("D:\\SilverFolder"); 

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.automation.automationfactory(VS.95).aspx http://msdn.microsoft.com/en-us/library/ee721083(VS.96).aspx

+0

Ça sonne bien en théorie, mais - Disons que l'utilisateur doit sélectionner un fichier d'abord, l'utilisateur fait cela en utilisant OpenFileDialog, mais maintenant, quand vous appelez - FileInfo fs = flDialog.File; fs.FullName pour obtenir le chemin, vous obtenez un bon message d'erreur d'accès refusé. –

+0

Exécutez-vous l'application SL en mode confiance élevée? Clic droit sur projet SL -> Cochez Activer l'application en cours d'exécution à partir du navigateur. Cliquez sur les paramètres Out-of-Browser. Cochez "Exiger une confiance élevée lors de l'exécution en dehors du navigateur". – Davita

+0

Bien sûr que je suis. Faites un test et vous verrez le problème. Recherchez simplement n'importe quel fichier, puis essayez d'obtenir le chemin. Je peux poster du code source si vous le souhaitez. –