2011-10-27 6 views
2

Je crée un programme qui utilise un type de fichier spécifique et j'ai associé ce type de fichier au programme, mais quand je clique sur le fichier, il démarre seulement le programme, mais il ne le fait pas. charge le fichier sur lequel j'ai cliqué. Comment puis-je faire charger mon programme par le programme?Ouvrir le fichier et le charger

Répondre

1

Vous pouvez utiliser le static void Main(string[] args) pour obtenir le nom du fichier.

je ferais quelque chose comme ceci:

quelque part dans votre code, vous devriez avoir une variable de chaîne où stocker le nom du fichier récupéré private string filename;

static void Main(string[] args) { 
    // first check if there are arguments 
    if (args.length > 0) 
    { 
    // check if the filename has the right extension 
    if (args[0].EndsWith(".ext")) 
    { 
     // check for existence 
     if (System.IO.File.Exists(args[0])) 
     { 
      // it exists.. so store the filename in the previously defined variable 
      filename = args[0]; 
     } 
    } 
    } 
} 

De cette façon, vous pouvez faire une sorte de logique lorsque la variable filename a du contenu et un autre type de logique quand ce n'est pas le cas.

J'espère que vous pouvez l'utiliser.

2

Dans votre application, vous devez utiliser Main(string[] args) et obtenir des args params passés à votre application.
Ici, il est un exemple:

static void Main(string[] args) 
{ 
    if (args.Length == 0) return; 
    string text = File.ReadAllText(args[0]); 
} 
+0

... et je pense que vous devez spécifier le paramètre dans votre association de fichier Windows comme indiqué ici: http://technet.microsoft.com/en-us/library/cc749986.aspx – zoidbeck

+0

@zoidbeck: oui, mais OP nous dit que son application est ouverte quand il double-clique sur le fichier cible, donc je pense que c'est déjà ok – Marco

+0

Ok, je n'ai pas essayé et j'ai pensé que '% 1' comme paramètre devait être défini explicitement. Bon à savoir ... ou comme les upvotes semblent indiquer que vous devez le configurer explicitement pour l'obtenir ou utiliser l'environnement :-) – zoidbeck

3

Lorsque vous ouvrez un fichier que vous avez associé à votre application, le chemin du fichier est passé dans votre programme comme un argument de ligne de commande. Vous pouvez charger le fichier vous-même comme ceci:

string fileName = Environment.GetCommandLineArgs()[0];