2011-01-21 6 views
0

Je veux créer la méthode whish prendre 2 paramètres de DBfichier ouvert avec le programme approprié

openFile(byte[] fileInfo,string extension) 

puis quand je l'appelle cette méthode, il peut choisir le programme approprié l'ouvert, il

par exemple, si je l'appelle comme

openfile(fileInfo,"docx") 

il choisir automatiquement mot à ouvrir octet [] et aussi pour Excel & accès & autres extensions

+0

Bien sûr, où est la question? –

+0

Voulez-vous ouvrir le fichier avec l'application associée dans le système d'exploitation ou avec une autre application que vous choisissez? Que contient l'octet fileinfo [], les données du fichier? Chemin d'accès au fichier sur le système de fichiers? Autre chose? – MrEyes

+0

@Etienne: ce que le code dans la méthode :) –

Répondre

3

Vous devez d'abord enregistrer le fichier sur le disque et puis essayer de l'exécuter:

File.WriteAllBytes("foo.doc", fileInfo); 
Process.Start("foo.doc"); 
+0

donc il n'y a aucun moyen d'ouvrir la pièce jointe sans l'enregistrer :( –

+1

Cela dépendra du type de fichier et si la Le programme qui lui est associé prend en charge ceci.Il n'est pas possible de le faire dans le cas général –

+0

Aurait également besoin d'un espace de noms: System.Diagnostics.Process.Start ("foo.doc") –

1

Vous pouvez obtenir les fenêtres shell pour ouvrir l'éditeur associé en démarrant le fichier en tant que processus

Process.Start("example.txt"); 

Ceci ouvrira le Bloc-notes par exemple, si tel est l'éditeur associé.

Vous pouvez streamer votre buffer fileInfo dans un fichier temporaire avec l'extension spécifiée, puis exécuter un Process.Start (yourfilenamehere) pour le démarrer.

0

Comme d'autres déjà dit, utilisez Process.Start() et je fais toujours comme ça pour montrer un ouvert avec dialogue que le système ne toujours lorsque le fichier est pas associé:

Try 
{ 
    Process.Start(youfile); 
} 
Catch (Exception e) 
{ 
    OpenWith(youfile)//you need to implement this by yourself 
} 

EG : Calling the Open With dialog box from your application, using C#

Questions connexes