亲爱的高手们,大家好,问个相对路径问题!

gene31415926 2010-01-18 11:31:28
我的做的应用程序就是一个简单的窗体,然后在里面加一个按钮,点一下按钮,出现一个声音。 绝对地址可以运行,但是将它生成为一个setup文件以后就没有声音了,所以我得把它的路径换成绝对路径,我换了,但是听不见声音啊????



声音我发的位置是:H:\加声音\WindowsApplication4\goodmusic\q.wav

我的代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace WindowsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
//SoundPlayer sp =new SoundPlayer("H:\\加声音\\WindowsApplication4\\goodmusic\\q.wav");//这个是绝对地址,可以运行
//------------------------------------------------------------------
SoundPlayer sp = new SoundPlayer(@"../加声音/WindowsApplication4/goodmusic/q.wav");//这个是相对地址,找不到哎,请大家帮忙解决!!

sp.Play();
}
}
}
...全文
128 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
victorLF 2010-01-19
  • 打赏
  • 举报
回复
你先要明确声音文件与应用程序的位置关系:
1 声音文件在应用程序的上一级目录:用SoundPlayer sp = new SoundPlayer(System.IO.Path.GetFullPath("..")+"/q.wav");
2 声音文件与应用程序为相同目录中:用SoundPlayer sp = new SoundPlayer(System.IO.Path.GetFullPath("")+"/q.wav");
gene31415926 2010-01-19
  • 打赏
  • 举报
回复
晕死了,一天了,还没有完成这个任务
555555555555555555555555555555555555555555555
gene31415926 2010-01-19
  • 打赏
  • 举报
回复
楼上的,你就不能帮我试一下吗??谢谢了。我做不起来啊
qhiou 2010-01-19
  • 打赏
  • 举报
回复
System.AppDomain.CurrentDomain.BaseDirectory 可以取到程序的当前路径,你把你的声音文件放到exe相同目录就好了,或者使用配置文件记录路径程序启动的时候把文件路径加载进来。
gene31415926 2010-01-19
  • 打赏
  • 举报
回复
ouc_ajax
你好
您试过了没有?我试了不行哎
wangping06 2010-01-19
  • 打赏
  • 举报
回复
http://blog.csdn.net/wangping06/archive/2009/10/09/4644604.aspx
Hamsic 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 gene31415926 的回复:]
我的做的应用程序就是一个简单的窗体,然后在里面加一个按钮,点一下按钮,出现一个声音。 绝对地址可以运行,但是将它生成为一个setup文件以后就没有声音了,所以我得把它的路径换成绝对路径,我换了,但是听不见声音啊????


声音我发的位置是:H:\加声音\WindowsApplication4\goodmusic\q.wav

我的代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace WindowsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
          //SoundPlayer sp =new SoundPlayer("H:\\加声音\\WindowsApplication4\\goodmusic\\q.wav");//这个是绝对地址,可以运行
//------------------------------------------------------------------
            SoundPlayer sp = new SoundPlayer(@"../加声音/WindowsApplication4/goodmusic/q.wav");//这个是相对地址,找不到哎,请大家帮忙解决!!
           
            sp.Play();
        }
    }
}
[/Quote]

把你的声音文件 一起放在项目文件夹下 然后打包
Hamsic 2010-01-19
  • 打赏
  • 举报
回复
= =用的着么

如果时 WebApplication 的话:
用 server.MapPath()

如果是 WindowsApplication 的话
用 System.IO.Path.GetFullPath("所在项目中的相对路径") //返回的是绝对路径
lanfengsese 2010-01-19
  • 打赏
  • 举报
回复
加声音文件夹放到程序目录下就可以了
chirsty423 2010-01-19
  • 打赏
  • 举报
回复
首先你生成的exe文件要包含goodmusic文件夹,
也就是客户机安装后要有这么个文件夹生成,
里面有q.wav音乐.

string Path = System.AppDomain.CurrentDomain.BaseDirectory + "\\goodmusic\\q.wav";

SoundPlayer sp =new SoundPlayer(Path);//生成安装文件可以运行,F5报路径错误,是因为开发机比客户机多2个Bin/DeBug文件夹
rpoplar 2010-01-19
  • 打赏
  • 举报
回复
System.Io.Directory.getcurrentdirectory()
hsghxm 2010-01-19
  • 打赏
  • 举报
回复
请搞清楚 "../"的意思是指向你的exe的说在目录的上一级目录

Taiyangchen 2010-01-19
  • 打赏
  • 举报
回复
类似这种问题的,一定要用相对路径,才方便程序的移植,直接把文件放在bin下不就可以了么,根本不用写什么路径,自动就是默认根目录了又简单。。。
Hamsic 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 gene31415926 的回复:]
根本就不行
[/Quote]

什么不行?
gene31415926 2010-01-19
  • 打赏
  • 举报
回复
根本就不行
ouc_ajax 2010-01-18
  • 打赏
  • 举报
回复

System.AppDomain.CurrentDomain.BaseDirectory + "\\加声音\\WindowsApplication4\\goodmusic\\q.wav";
ouc_ajax 2010-01-18
  • 打赏
  • 举报
回复
code=C#]System.AppDomain.CurrentDomain.BaseDirectory + "\\加声音\\WindowsApplication4\\goodmusic\\q.wav";[[/code]
gene31415926 2010-01-18
  • 打赏
  • 举报
回复
弱弱的问一声,没人知道吗??

111,121

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧