【问题标题】:C# Setup Issue.C# 设置问题。
【发布时间】:2013-07-26 23:09:53
【问题描述】:
    private void ReadText(string text)
    {
        string add = "http://translate.google.com/translate_tts?tl=ta&q=";
        add += HttpUtility.UrlEncode(text, Encoding.GetEncoding("utf-8"));
        try
        {
            using (var client = new WebClient())
            {
                try
                {
                    client.Headers[HttpRequestHeader.UserAgent] =
                        "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1";                                            }
                catch
                {
                    MessageBox.Show("Intenet error");
                }

                try
                {                        
                    client.DownloadFile(add, "mp3CriationTest.mp3");
                }
                catch 
                {
                    MessageBox.Show("NAudio Error");
                }
            }
        }
        catch (WebException e3)
        {
            MessageBox.Show("ReadText error: " + e3);

        }
    }

我正在使用 nAudio 进行谷歌文本转语音(tts)。当我在 Visual Studio 调试(F5)上运行时,这段代码对我来说效果更好。但是当我创建安装文件时,我会收到异常消息“NAudio Error”。所以很明显在我的设置的应用程序文件夹上保存/创建“mp3CiationTest.mp3”存在问题。但是当我使用 Visual Studio 调试(F5)时,在调试文件夹上创建“mp3CiationTest.mp3”可以正常工作。 谁能知道是什么问题?请帮忙。

【问题讨论】:

  • 您应该查看捕获的异常的堆栈跟踪,而不是吞下它并通过显示一个字面上什么都不告诉您的消息框来欺骗自己。 ;-)
  • 另外,过度使用 try catch 是不好的做法:stackoverflow.com/questions/1722964/…
  • @FabianBigler 好的,谢谢。

标签: c# .net naudio


【解决方案1】:

除非您具有管理权限,否则您不能直接写入程序文件文件夹。您可以将文件保存到应用程序数据文件夹(指定环境);喜欢

string fileName = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + "mp3test.mp3";
client.DownloadFile(add, fileName);

【讨论】:

  • 最好使用Path.Combine(AppDataFolder, "mp3File"),最好在那里创建一个自己的应用程序文件夹:)
  • 同意新建文件夹
  • @Leon 你能告诉我如何在应用程序文件夹中创建“mp3CriationTest.mp3”文件而不是检索它。假设我将“mp3CiationTest.mp3”手动复制到该应用程序文件夹中,那么程序可以正常工作。我想要的是在应用程序文件夹中创建新的“mp3CriationTest.mp3”而不冲突“client.DownloadFile(add,“mp3CriationTest.mp3”);”方法。
  • 发现问题。我想要我的应用程序文件夹的写入权限。
  • 如果我没记错的话,你应该(因为每个程序都应该)有权访问该文件夹。应该在该文件夹中创建文件(带有示例),没有任何问题。如果出现任何问题 - 将异常值添加到“Naudio 错误”捕获并在更新/编辑中发布该错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多