为什么要这么复杂的啊?我是直接加一个通用对话框控件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
不对的话可以继续问我的··呵呵··。
多写几个filter
OpenFileDialog opf = new OpenFileDialog();opf.Filter = "音频文|*.mp3;*.wma;*.aac;*.midi;*.wav;*.aaa;*.bbb;*.ccc";if (opf.ShowDialog() != DialogResult.OK) return; 。
这样写可以的 我试过了 后面的*.aaa bbb ccc能筛选出来的。
'需imports system.data、system.data.oledb 。
2 Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click 。
3 '使用OpenFileDialog 。
4 Dim openfile as new OpenFileDialog() 。
5 openfile.InitialDirectory = "..\" '开启时预设的资料夹路径 。
6 openfile.Filter = "Excel files(*.xls)|*.xls" '只抓excel档 。
7 openfile.ShowDialog() 。
8
9 '塞资料至DataGridView1 。
10 If openfile.FileName <> "" Then 。
11 Dim conn As String '连线字串 。
12 Dim Mycon As OleDbConnection 。
13 Dim myDa As OleDbDataAdapter 。
14 Dim dt As New DataTable 。
15
16 conn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 。
17 "Data Source=" & openfile.FileName & _ 。
18 ";Extended Properties=Excel 8.0;" 。
19
20 Mycon = New OleDb.OleDbConnection(conn) 。
21 myDa = New OleDb.OleDbDataAdapter("select * from [excel的sheet名$]", Mycon) 。
22 myDa.Fill(dt) 。
23 Me.DataGridView1.DataSource = dt 。
24 End if 。
25 End Sub
C#://需using system.data、system.data.oledb 2</SPAN>//按下btn1 </td>3</SPAN>private void btn1_Click(object sender, EventArgs e) </td>4 { 5 </SPAN>//选择excel </td>6 OpenFileDialog openfile = </SPAN>new OpenFileDialog(); </td>7 openfile.InitialDirectory = </SPAN>"..\\"; //开启时预设的资料夹路径 </td>8 openfile.Filter = </SPAN>"Excel files(*.xls)|*.xls"; //只抓excel档 </td>9 openfile.ShowDialog(); 10 11 </SPAN>//开启档案载入资料 </td>12 </SPAN>if (openfile.FileName != "") </td>13 { 14 </SPAN>string conn; </td>15 OleDbConnection myconn; 16 OleDbDataAdapter myad; 17 DataTable dt = </SPAN>new DataTable(); </td>18 conn = </SPAN>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openfile.FileName + </td>19 </SPAN>";Extended Properties=Excel 8.0;"; </td>20 myconn = </SPAN>new OleDbConnection(conn); </td>21 myad = </SPAN>new OleDbDataAdapter("select * from [excel的sheet名$]", myconn); </td>22 myad.Fill(dt); 23 </SPAN>this.dataGridView1.DataSource = dt; </td>24 } 25 } 因为不是很清楚你的数组是何种样式定义的,我暂且给你一个直接绑定到DataGridView的例子。您可以自行修改并且参考。
假如有一个按钮叫“打开文件”,那么在双击这个按钮,进入事件编辑,然后加入如下代码:
string filepath="" ;。
OpenFileDialog opf = new OpenFileDialog();。
if(opf.ShowDialog()==DialogResult.OK)。
filepath= opf.FileName;。
filepath就是要获得的文件路径。
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的引用后使用。