2017-09-29 4 views
-4

Lorsque je sélectionne plusieurs fichiers sur mon ordinateur et que j'ouvre, chaque fichier s'ouvre avec une instance dans mon application. dans configurer l'application Windows pour exécuter une instance, mais un fichier ouvert avec mon application. Comment puis-je ouvrir les fichiers sélectionnés et ajouter des fichiers d'adresses dans une zone de liste dans mon application.comment associer plusieurs fichiers dans C#

Program.cs

static class Program 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
     if (args != null && args.Length > 0) 
     { 
      string fileName = args[0]; 
      if (File.Exists(fileName)) 
      { 
       Application.EnableVisualStyles(); 
       Application.SetCompatibleTextRenderingDefault(false); 

       Form1 MainFrom = new Form1(); 
       MainFrom.OpenFile(fileName); 
       Application.Run(MainFrom); 
      } 
      else 
      { 
       MessageBox.Show("The file does not exist!", "BMPlayer Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       Application.EnableVisualStyles(); 
       Application.SetCompatibleTextRenderingDefault(false); 
       Application.Run(new Form1()); 
      } 
     } 
     else 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 
     } 
    } 
} 

Form.cs

 public void OpenFile(string filePath) 
    { 
     string file1 = File.ReadAllText(filePath); 
     axWindowsMediaPlayer1.URL = filePath; 
    } 

ce code ne fonctionne que pour un seul fichier.

+0

Avez-vous essayé quelque chose? Avez-vous du code à partager avec des exemples de données? Ce n'est pas clair pour moi ce que vous voulez accomplir. – Pac0

+4

En outre, vous ne devriez pas mettre une lettre majuscule à chaque mot de vos phrases. – Pac0

+0

Je comprends que vous n'êtes pas un anglophone natif. Permettez-moi de tenter de restreindre cette question et dites-moi si cela vous tente: Dans l'Explorateur, vous voulez sélectionner plusieurs fichiers. Maintenant, si vous appuyez sur Entrée, vous voulez que votre application s'ouvre avec une liste de ces fichiers sélectionnés au lieu d'une instance de votre application pour chaque fichier sélectionné. Votre tentative de configurer votre application pour qu'une seule instance puisse être ouverte à la fois conduit au comportement selon lequel il n'y a qu'une seule instance avec un fichier de la sélection. Est-ce exact? – Fildor

Répondre

0

Je ne sais pas quel est le type de votre projet de bureau, mais vous pouvez le faire en WinForms selon la méthode ci-dessous:

private void OpenFiles() 
    {    
     using (var openFolderDialog = new OpenFileDialog { Multiselect = true }) 
     { 
      openFolderDialog.Filter = "csv files (*.csv)|*.csv|txt files (*.txt)|*.txt|All files (*.*)|*.*"; 

      if (openFolderDialog.ShowDialog() == DialogResult.OK 
       && openFolderDialog.FileNames.All(x => !string.IsNullOrEmpty(x))) 
      { 
       string[] files = openFolderDialog.FileNames; 

       // TO DO: You can now loop over the selected files 
       foreach(var fileName in files) 
       { 
        // Addyour logic here 
       } 
      } 
     } 
    } 

Exemple de programme à l'aide de Windows Media Player pour lecteur une liste de chanson fichiers d'un seul processus WMP comme une liste de lecture:

class Program 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
     string space = " "; 
     string filePath1 = @"D:\mysong1.mp3"; 
     string filePath2 = @"D:\mysong2.mp3";    

     List<string> songFiles = new List<string>(); 
     songFiles.Add(filePath1); 
     songFiles.Add(filePath2);    

     var playList = songFiles.Aggregate((a, b) => a + space + b); 

     Process.Start("wmplayer.exe", playList);    
    } 
} 

Vous pouvez utiliser la combinaison des deux codes ci-dessus pour accomplir vos besoins.

+0

Je ne veux pas dire ouvrir le fichier projet de dialogue .my programme est un lecteur de musique et quand vous double-cliquez sur une musique, ça va bien jouer, mais quand vous sélectionnez plus d'une chanson, le programme ouvre les chansons dans plus d'exemple – Mohsen

+0

Je ne voulais pas sélectionner et jouer plus d'une chanson dans une instance, tout comme playlist.Besides que je sais comment créer une playlist en C# :) Donc, ma question n'est pas "comment créer une playlist" – Mohsen

+0

Je vois ce que vous voulez dire, mais si vous voulez plus d'aide, vous devriez ajouter une partie de votre code pour indiquer précisément où est le problème. Sinon, je pourrais simplement vous dire d'utiliser le code ci-dessus, et faire une boucle sur les fichiers musicaux sélectionnés et implémenter pour chaque fichier la logique pour le lire et le fermer quand il est fini. –