当我在计算机中选择多个文件并打开时,每个文件在我的应用程序中打开一个实例。在配置Windows应用程序中运行一个实例,但是我的应用程序打开了一个文件。如何在我的应用程序的列表框中打开所选文件并添加地址文件。
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;
}
此代码仅适用于一个文件。
答案 0 :(得分:0)
我不知道您桌面项目的类型,但您可以使用以下方法在WinForms中执行此操作:
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播放来自一个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);
}
}
您可以使用上述两个代码的组合来满足您的需求。