我想将电脑中的现有文件复制到数据目录中的文件夹中。我这样做,但它将文件移动到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);
}
}
答案 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