c#如何关联多个文件
Posted
技术标签:
【中文标题】c#如何关联多个文件【英文标题】:how to associate multiple files in c# 【发布时间】:2017-09-29 13:27:22 【问题描述】:当我在我的计算机中选择多个文件并打开时,每个文件都会在我的应用程序中打开一个实例。在配置 Windows 应用程序以运行一个实例,但我的应用程序打开一个文件。如何打开选定的文件并在我的应用程序的列表框中添加地址文件。
程序.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;
此代码仅适用于一个文件。
【问题讨论】:
你有没有尝试过?您有与示例数据共享的代码吗?我不清楚你想达到什么目标。 另外,你不应该在句子的每个单词前加上大写字母。 我知道您的母语不是英语。让我尝试解决这个问题,请告诉它是否准确:在资源管理器中,您要选择多个文件。现在,如果您按 Enter 键,您希望您的应用程序以这些选定文件的列表打开,而不是每个选定文件的一个应用程序实例。您尝试配置您的应用程序,以便一次只能打开一个实例,这会导致只有一个实例具有一个来自所选文件的文件。对吗? 对于单个文件,它工作正常,但是当我尝试同时打开多个文件时,它会为每个单独的文件启动一个程序实例。 这不是我的问题@Fildor,我是从其他网站复制的。错误是因为那个 Pac0:) 【参考方案1】:我不知道你的桌面项目是什么类型的,但是你可以在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);
您可以使用以上两个代码的组合来完成您的需要。
【讨论】:
我不是说打开文件对话框项目。我的程序是一个音乐播放器,当你双击一首音乐时,它会播放得很好,但是当你选择多首歌曲时,程序在更多实例中打开歌曲 我不想在一个实例中选择和播放超过一首歌曲,就像播放列表一样。除了我知道如何在 c# 中创建播放列表:) 所以我的问题不是“如何创建播放列表” 我明白你的意思,但如果你需要更多帮助,你应该添加一些代码来准确指出问题所在。否则,我可以简单地告诉您使用上面的代码,并循环选择的音乐文件并实现 foreach 文件的逻辑以播放它并在完成时关闭它。 对象 axWindowsMediaPlayer1 是什么? 来自 com 组件。 WMP 对象。以上是关于c#如何关联多个文件的主要内容,如果未能解决你的问题,请参考以下文章