如何将现有文件从我的Pc复制到我的解决方案目录?

时间:2013-12-12 12:26:43

标签: c# .net

我想将电脑中的现有文件复制到数据目录中的文件夹中。我这样做,但它将文件移动到myApp \ bin \ Debug \ Imagenes,我想将其移动到myAp \ Imagenes

OpenFileDialog openFileDialog1 = new OpenFileDialog();            
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            try
            {
                File.Copy(openFileDialog1.FileName, Application.StartupPath + @"\Imagenes\imagen.jpg", true);


            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
        }

3 个答案:

答案 0 :(得分:2)

  

它将文件移动到myApp \ bin \ Debug \ Imagenes

这是你在这里要做的事情。

Application.StartupPath + @"\Imagenes\imagen.jpg"

Application.StartupPath获取启动应用程序的可执行文件的路径,不包括可执行文件名。这就是它转向bin / Debug的原因。

  

我想将其移至myAp \ Imagenes

然后将上述路径更改为您想要的路径。

答案 1 :(得分:1)

更正 - 对那些说Application.StartupPath会起作用的人。您说的是正确的,但如果您执行ClickOnce部署,行为会有所不同! :)

请在此处查看已记录的解决方案:

http://msdn.microsoft.com/en-us/library/d8saf4wy(v=vs.110).aspx

步骤1 - 检查网络是否已部署:

if (ApplicationDeployment.IsNetworkDeployed)

步骤2 - 如果是,则使用DataDirectory路径:

ApplicationDeployment.CurrentDeployment.DataDirectory 

如果你的应用程序没有部署clickon,那么这就是“else”语句的来源,因此使用默认的application.startup路径。这意味着您的应用程序可以更友好地部署,可以满足这两个条件 - 无论是否为clickonce。

答案 2 :(得分:0)

您可以使用String函数创建路径:

string s = @"c:\newfolder\myApp\bin\Debug\Imagene"; //supposed path, you will put "Application.StartupPath" here
s = s.Substring(0, s.IndexOf(@"\bin")) + @"\Imagenes\imagen.jpg";

现在s是:

  

C:\ newfolder \对myApp \ Imagenes \ imagen.jpg