none
关于路径的问题。 RRS feed

  • 问题

  •  找不到'file:///E:/PDF/25.pdf%23search='12''.请确认路径或Internet地址正确。

    做好软件了,在电脑上运行没有问题,但是刻到光盘里再运行,就会出现上面的错误。
    请问是怎么回事?
    • 已移动 Sheng Jiang 蒋晟 2009年2月28日 4:42 程序运行问题 (从 Visual C# 移动到 Windows XP)
    2009年2月27日 6:56

答案

  •  现在你说 在有些机器上光盘运行有问题,有些没有?

    这个问题你在开始的时候没有说明吧,这个可能和具体的机器环境有关系了。

    你可以查看出问题的机器的软硬件环境和没有问题机器是否不一样(比如光驱盘符,系统等等)

    或者还是仔细看看程序是否有问题,建议采用相对路径来处理。或者你直接获取你程序运行位置路径,用这个路径作为你后来操作的基础路径。

    2009年2月27日 11:22

全部回复

  • 你好!

         我感觉是光盘里的程序不能访问本地文件!

     

    周雪峰
    2009年2月27日 6:58
  • 不能访问本地文件?请问如何解决?

    2009年2月27日 7:00
  • 第1:file后面是3个斜杠,不是应该只有1个吗?

    请问如何在程序里看见那个file

    第2:我要显示的是25.pdf关键词是12,后面那个23不应该存在的。

     

    2009年2月27日 7:06
  • 1.那个%23 是urlencode的结果,实际是#。

    2.出现这个错误可能是由于您没有使用相对路径。

    2009年2月27日 8:07
  • 没有使用相对路径?

    string AppPath=Application.StartupPath;

     string newuri = AppPath + "\\html\\Tdky.htm";
     this.webBrowserPdf.Url = new Uri(newuri);

    这个有问题吗?

     

    2009年2月27日 8:13
  • 没看出来问题

    建议检查在本地运行时候路径和在光盘上运行时候的路径是否有差异。问题可能在这里。

    2009年2月27日 8:22
  • 请问如何检查在本地运行路径和光盘运行的路径是否有差异?

    不刻盘的情况下,程序在其他多台机器上都正常运行。

    刻成光盘的情况下,在有光驱的2台机器上测试过,在光驱里运行都出现上面所说的问题。

                //获取节点的内容
                string NodeText = e.Node.Text;

                //循环期数数组
                for (int i = 0; i < this.Idx.Volume.Length; i++)
                {
                    //判断点击的节点的值是否于期数数组中的值相同
                    if (NodeText == this.Idx.Volume[i].ToString())
                    {
                        string KeyWord = this.tbKeyWord.Text;
                        string SearchUri = AppPath + this.Idx.File[i];
                        this.webBrowserPdf.Url = new Uri(SearchUri + "#search='" + KeyWord + "'");

                    }
                }

    2009年2月27日 8:45
  • 如果测试条件容许,你可以将不同环境下运行的路径打印出来(messagebox show也好,保存到txt文件也好)然后比较

     

    2009年2月27日 8:50
  •  可惜我这条件不行啊,而且程序不刻盘还不出现没问题。刻盘之后,就在客户那才出现问题,我这8台机器全正常。

    要找原因,还非得刻盘。。。

     

    2009年2月27日 9:01
  •  还想问一下,作为光盘,是用来安装的,还是用来运行程序的?

    如果是后者,你获取apppath可能有问题,参见你的代码:string AppPath=Application.StartupPath;

    如果可能,可以做一个虚拟iso文件,用虚拟光驱来运行测试。

    2009年2月27日 9:08
  • 作为光盘,是用来运行程序的。

    AppPath有什么问题吗?

    我这是先用虚拟光驱测试过了才刻盘的,都是正常的,就是到客户那才出现的问题。

    2009年2月27日 9:13
  • 给你提供一个思路:
    用一个批处理把程序拷贝到C盘下然后再实际执行,这样可以绕过这个问题。
    至于这个问题本身如何解决,还等高人指点吧。


    活着,在IT。
    2009年2月27日 9:14
  • apppath获取的是安装路径,按照你说法,光盘是运行程序

    问题来了,

    你什么时候安装程序的?

    使用安装路径作为访问路径是否正确?

    2009年2月27日 9:20
  •  的确,那么应该如何修改呢?

    还有,如果路径有问题,为什么有这么多机器运行光盘都正常,或者直接运行程序(不刻盘)也正常呢?

    我最开始也想到是路径原因,但是就是不清楚问题出在哪,因为有的机器正常有的机器出问题。

    路径出现问题不是应该所有的机器运行该程序都会出问题么?

    2009年2月27日 9:29
  •  现在你说 在有些机器上光盘运行有问题,有些没有?

    这个问题你在开始的时候没有说明吧,这个可能和具体的机器环境有关系了。

    你可以查看出问题的机器的软硬件环境和没有问题机器是否不一样(比如光驱盘符,系统等等)

    或者还是仔细看看程序是否有问题,建议采用相对路径来处理。或者你直接获取你程序运行位置路径,用这个路径作为你后来操作的基础路径。

    2009年2月27日 11:22