如何将文件复制到与当前解决方案同目录的文件夹中

时间:2022-04-24 12:33:49
解决方案同目录下有一个images文件夹,我想点击按钮时将其他位置的图片文件复制到其中。可复制文件使用的函数又要求给出文件最终的存放位置。为了让程序不加修改地直接在其他计算机中运行,我打算用相对路径表示images文件夹的位置。我的思路是:先获取当前解决方案的路径,再映射到images文件夹。在Form_Load事件中,我实现了images文件夹的路径。可我是想在单击按钮里再获取路径,于是我就把Form_Load事件里的获取路径的代码直接复制到按钮的单击事件里。而最终按钮事件里获取的路径和Form_Load事件里获取的路径却不一样。这是怎么回事呢?该如何解决?

6 个解决方案

#1


给你一段函数,调用即可:

/// <summary>
/// 获得当前绝对路径
/// </summary>
/// <param name="strPath">指定的路径</param>
/// <returns>绝对路径</returns>
public static string GetMapPath(string strPath)
{
if (HttpContext.Current != null)
{
return HttpContext.Current.Server.MapPath(strPath);
}
else //非web程序引用
{
return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
}
}

#2


调试时提示“当前上下文中不存在名称‘HttpContext’是怎么回事?

#3


说明你不是WEB项目,你可以手动添加项目的引用,这是HttpContext的信息:
Namespace:  System.Web
Assembly:   System.Web (in System.Web.dll)

如果你创建WEB站点,或者创建WEB应用程序,那个System.Web会自动添加到项目引用中的。

#4


我写的是Windows程序,用上面的方法不行呀?

#5


使用Application.StartupPath; 不行?

#6


帮顶...

#1


给你一段函数,调用即可:

/// <summary>
/// 获得当前绝对路径
/// </summary>
/// <param name="strPath">指定的路径</param>
/// <returns>绝对路径</returns>
public static string GetMapPath(string strPath)
{
if (HttpContext.Current != null)
{
return HttpContext.Current.Server.MapPath(strPath);
}
else //非web程序引用
{
return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
}
}

#2


调试时提示“当前上下文中不存在名称‘HttpContext’是怎么回事?

#3


说明你不是WEB项目,你可以手动添加项目的引用,这是HttpContext的信息:
Namespace:  System.Web
Assembly:   System.Web (in System.Web.dll)

如果你创建WEB站点,或者创建WEB应用程序,那个System.Web会自动添加到项目引用中的。

#4


我写的是Windows程序,用上面的方法不行呀?

#5


使用Application.StartupPath; 不行?

#6


帮顶...