你要获取openfiledialog 的FILES集合,循环后再加到listview中。
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.filedialog.filenames(v=vs.80).aspx。
为什么要这么复杂的啊?我是直接加一个通用对话框控件CommonDialog,这个控件支持打开、另存为功能。点击工程菜单中的部件选项,然后选择microsft common dialog control6.0,再按确定。将对话框画一个到窗体上然户就可以编程的了。
根据你的要求我觉得应该编写这些语句:
private sub command1_click()。
dim filename_select as string。
commondialog1.dialogtitle="请选择要打开的音乐文件"。
commondialog1.initdir="c:\" '缺省打开路径。
commongdialog1.filter="mediafile|*.mp3;*.wmv" commondialog1.showopen。
filename_select=commondialog1.filename。
end sub
不对的话可以继续问我的··呵呵··。
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.filedialog.filename(v=vs.80).aspx。
上面是MSDN官方的解释,简单来说就是FileDialog.FileName 属性就是你在文件选择对话框中选择的文件名,该文件名既包含文件路径也包含扩展名。如果未选定文件,Filename属性将为空字符串 ("")。
希望帮到你!
private void button1_Click(object sender, EventArgs e)。
{
OpenFileDialog openFile = new OpenFileDialog();。
openFile.Filter = "Excel file|*.xls;*.xlsx|All file|*.*"; //打开文件过滤器。
openFile.Title = "打开文件"; //打开对话框标题。
if (openFile.ShowDialog() == DialogResult.OK)。
{
this.textBox1.Text = openFile.FileName; //选择文件路径给textBox。
}
}
如果出现如下错误:
Attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.。
请到Debug -> Exceptions-->Find, 输入查找LoaderLock,并将其勾选去掉。
1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName。
-获取模块的完整路径。
2.System.Environment.CurrentDirectory。
-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
3.System.IO.Directory.GetCurrentDirectory()。
-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,
4.System.AppDomain.CurrentDomain.BaseDirectory。
-获取程序的基目录。
5.System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase。
-获取和设置包括该应用程序的目录的名称。
6. System.Windows.Forms.Application.StartupPath。
-获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个"\"而已。
7.System.Windows.Forms.Application.ExecutablePath。
-获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。
对于Windows程序 和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码。
string path = "";。
if (System.Environment.CurrentDirectory ==AppDomain.CurrentDomain.BaseDirectory)//Windows应用程序则相等。
...{
path = AppDomain.CurrentDomain.BaseDirectory;。
else
...{
path = AppDomain.CurrentDomain.BaseDirectory + "Bin\";。
这样如果我们写了一个类库,类库中用到了Assembly.LoadFrom,由于是通用类库,所以可能用到Windows程序中也可能用到Web中,那么用上面的代码就很方便了.。
1、Server.MapPath。
2、System.Windows.Forms.StartupPath。
3、Type.Assembly.Location。
方法2可以应用于控制台应用程序,WinForm应用程序,Windows服务,方法1可以应用于Web应用程序,方法3都可以应用。
但方法3是加载应用程序的路径。如果是Web应用程序,取得的路径是:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用。