2017-09-29 21 views
-4

自分のコンピュータで複数のファイルを選択して開くと、各ファイルがアプリケーションで1つのインスタンスで開きます。 1つのインスタンスを実行するためにWindowsアプリケーションを構成するには、私のアプリケーションで1つのファイルを開きます。選択したファイルを開き、アプリケーションのリストボックスにアドレスファイルを追加できますか?Cで複数のファイルを関連付ける方法

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; 
    } 

このコードは一つだけのファイルのために働く

Program.csが。

+0

試しましたか?サンプルデータを共有するコードはありますか?あなたが何を達成したいのかは分かりません。 – Pac0

+4

また、あなたは文章の各単語に大文字を入れてはいけません。 – Pac0

+0

あなたはネイティブスピーカーではないことを理解しています。その質問をひどくする試みをして、それが爪に当たるかどうか教えてください。エクスプローラで、複数のファイルを選択したいとします。ここでEnterキーを押すと、選択したファイルごとにアプリケーションの1つのインスタンスではなく、選択したファイルのリストでアプリケーションを開くことができます。一度に1つのインスタンスしか開くことができないようにアプリケーションを構成しようとすると、選択したファイルが1つしかないインスタンスが1つしか存在しなくなります。あれは正しいですか? – Fildor

答えて

0

私は、デスクトッププロジェクトの種類が何であるかを知らないが、あなたは下の方法を使用してリサイズでそれを行うことができます。

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 
       } 
      } 
     } 
    } 

プレイヤーに、曲のリストをWindows Media Playerを使用して、プログラムの例プレイリストのような1つのWMP単一プロセスのファイル:

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);    
    } 
} 

上記の2つのコードを組み合わせて使用​​することができます。

+0

私は開いているファイルのダイアログプロジェクト.myプログラムが音楽プレーヤーであることを意味しないし、音楽をダブルクリックするとうまく再生されますが、複数の曲を選択すると、プログラムは曲を開きますより多くの例では – Mohsen

+0

私はプレイリストのように1つのインスタンスで複数の曲を選択して再生することを忘れました。それ以外にも、C#でプレイリストを作成する方法を知っています 質問: "プレイリストを作成する方法" – Mohsen

+0

私はあなたが意味するものを見ていますが、より多くの助けが必要な場合は、問題がどこにあるかを正確に指摘するコードをいくつか追加する必要があります。それ以外の場合は、上記のコードを使用し、選択した音楽ファイルをループし、foreachファイルを実行して再生し、終了したら閉じることができます。 –

関連する問題