假设我现在新建了一个解决方案,下面有一个 winform 工程,在这个工程里面新建了一个 pic 文件夹,里面有个图片 pic\a.jpg 。我希望在 winform 里的一个 PictureBox 里加载这个图片,而且是用路径的形式,假设是这样 picbox.path = "xxx"。这里应该用相对路径,请问下,这个相对路径应该怎么写??我一开始用的获取程序启动路径,但是这个路径包含着 \bin\debug 目录,因为是调试状态嘛,但是如果制作安装文件正式安装后 exe 文件应该是和 pic 目录同级的吧??难道我要调试的时候写一个路径,制作安装的时候又写一个路径??不知道我表达清了没有,做 winform 的应该知道吧。我把目录简单画下:
1.这是工程的目录-- Proj
       -- bin
              -- debug\app.exe
              -- realse
       -- pic\a.jpg2.这是安装包安装后的目录
-- Folder1
          -- app.exe
          -- pic\a.jpg
          

解决方案 »

  1.   

    这样呢:            string path;
    #if DEBUG
                path = Path.Combine(Directory.GetParent(Application.StartupPath).Parent.Parent.FullName, @"pic");
    #else
                path = Path.Combine(Application.StartupPath, @"pic");
    #endif
                MessageBox.Show(File.Exists(path + "\\a.txt").ToString());
      

  2.   


    string path = Application.StartupPath + "\\111.bmp";
    this.pictureBox1.Image = System.Drawing.Image.FromFile(path);
      

  3.   

    多在debug的时候,程序是在debug目录运行的,所以你的debug目录下也要有pic文件夹和文件,打包安装以后,你只管判断Application.StartPath+相对路径就OK了,不要管在哪个目录.
      

  4.   


    是我就是这个意思,你们一般怎么做的??用条件编译??把pic目录复制到 debug 目录??
      

  5.   

    我一般是在Debug目录下建立自己需要的目录,这样基本上可以维持调试时候的目录结构与发布时的目录结构一致,就不需要针对两种环境配置两种目录结构。
    如果你的文件可以让用户自己决定放在哪里的话,那你可以使用App.config,然用户自己去配置。