日期:2014-05-18  浏览次数:21235 次

WINFORM如何获取当前文件的绝对路径?
//FileInfo fi = new FileInfo(); fi.FUllname
和Application.StartupPath;我都试过了。。取的都不对。。
这是为什么。。。。?
我要的是在当前项目下一个文件的绝对路径,但它取的总是整个解决方安的Output下的路径。。请问各位有方法吗?


------解决方案--------------------
参考StackFrame.GetFileName 方法
不知道你为什么需要获得代码文件的路径~~~

获得更多跟 Exception 有关的信息??

http://msdn.microsoft.com/zh-tw/library/system.diagnostics.stackframe.getfilename(VS.80).aspx
http://blog.joycode.com/ghj/archive/2008/03/05/114925.aspx
------解决方案--------------------
探讨
引用:
我想大家都不太明白你说的“当前项目下一个文件的绝对路径”是什么意思,能详细点吗?

就是说我的工程下的一个文件。比如FORM1.CS。。


------解决方案--------------------
探讨
引用:
Environment.CurrentDirectory

这个就是绝对路径了

------解决方案--------------------
对,一层一层转可以实现,我刚做完,给你个例子你参考吧
/// <summary>
/// 根据从数据库中提取出来的文件路径,分离出在客户端头像的路径
/// </summary>
/// <param name="fileName">数据库中提取出来的文件路径</param>
/// <param name="faceFlag">是否进入客户端头像目录下</param>
/// <returns>faceFalg为True时,返回头像目录下的头像全路径,当faceFalg为False时,返回用户ID目录下的头像全路径 </returns>
public string getImgPath(string fileName, bool faceFlag)
{
int place;
string comPath = Application.StartupPath;
for (int i = 0; i < 2; i++)
{
place = comPath.LastIndexOf("\\");
comPath = comPath.Remove(place);
}
if (!faceFlag)
{
if (Directory.Exists(comPath + @"\\" + myInfo.Key.ToString()))
{
comPath = comPath + @"\\" + myInfo.Key.ToString() + fileName;
}
else
{
Directory.CreateDirectory(comPath + @"\\" + myInfo.Key.ToString());
comPath = comPath + @"\\" + myInfo.Key.ToString() + fileName;
}
}
else if (faceFlag)
{
comPath = comPath + @"\NEWFACE\" + fileName;
}
return comPath;
}

别直接用啊,你改改吧,可以改成动态形式的,大体的形式如此
------解决方案--------------------
OpenFileDialog ofd=new OpenFileDialog();
if(DialogResult.OK==ofd.ShowDialog())
{
 string fileName =ofd.FileName;
 MessageBox.Show(fileName);
}
这样得到的肯定是你要的。