和Application.StartupPath;我都试过了。。取的都不对。。
这是为什么。。。。?
我要的是在当前项目下一个文件的绝对路径,但它取的总是整个解决方安的Output下的路径。。请问各位有方法吗?
38 个解决方案
#1
你的可执行文件编译到这里就应该使这个Output
#2
Environment.CurrentDirectory
#3
Application.StartupPath 可以获取当前程序的启动路径
#4
这是由于你项目的启动目录没有设置的原因
如果直接运行程序的话,它是正确的
如果直接运行程序的话,它是正确的
#5
System.IO.Path.GetFullPath(filename);
这个总可以吧
这个总可以吧
#6
这个还是不行。。还有其他的办法吗?
#7
up
#8
参见这个。假如你那个文件名叫: Program.cs
string aaa = AppDomain.CurrentDomain.BaseDirectory + "Program.cs";
textBox1.Text=Path.GetFullPath(aaa);
string aaa = AppDomain.CurrentDomain.BaseDirectory + "Program.cs";
textBox1.Text=Path.GetFullPath(aaa);
#9
说老实话,你的问题我没看明白 “当前项目下一个文件的绝对路径” 这句话是什么意思呢?
如果是在工程目录下,取到文件是没有意义的。因为你发布的时候难道还带着工程? 必然是Output(bin)
所以你能取到的目录都是相对于你所说的Output目录。
#10
用DirectoryInfo 呢?
#11
我的意思是取当前项目下一个文件的绝对路径。。。我的目的就是这个。。。不要跟发布什么的搞在一起。。。
我另有用途嘛。。
#12
楼上各位所说的我都试过了。。
取的都只是当前编译后的目录
取的都只是当前编译后的目录
#13
Application.StartupPath 取到你执行文件的绝对路径,然后根据你文件与这个文件的相对路径,得到文件的绝对路径。
如果是打开了一个文件 FullName 应该是没问题的。.
如果是打开了一个文件 FullName 应该是没问题的。.
#14
我想大家都不太明白你说的“当前项目下一个文件的绝对路径”是什么意思,能详细点吗?
#15
就是说我的工程下的一个文件。比如FORM1.CS。。
#16
我也想知道这个问题,我现在都是一层一层往上转的
如:
如:
System.IO.DirectoryInfo mDir = new System.IO.DirectoryInfo(System.Windows.Forms.Application.StartupPath);
System.IO.DirectoryInfo dir = mDir.Parent;
System.IO.DirectoryInfo dir_a = dir.Parent;
String str=dir_a.FullName;
#17
参考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
不知道你为什么需要获得代码文件的路径~~~
获得更多跟 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
#18
Response.Write(Request.PhysicalApplicationPath);
#19
呵呵,是在IDE下的绝对路径,是这个意思吗?
#20
application.startpath
#21
application.startpath获取程序启动位置绝对路径
#22
这个就是绝对路径了
#23
up
#24
Application.ExecutablePath.Trim()
#25
你的办法是绝对不行的,默认是当前程序目录,当程序中有打开或者选择文件对话框时,目录就会改变
#26
AppDomain.CurrentDomain.BaseDirectory
#27
你能获取到文件的fileInfo,不明白FullName属性为什么不行
#28
ding
#29
你为什么要获取cs file 路径? 你的程序运行的时候,已经把他们build 到dll 或者是exe 里面了
#30
就自己一层一层转吧,搞那么麻烦干什么,好像C/S的都不能直接得到当前文件路径的,只有程序启运的路径
就根据这个路径一层一层往上找
就根据这个路径一层一层往上找
#31
up
#32
对,一层一层转可以实现,我刚做完,给你个例子你参考吧
/// <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;
}
别直接用啊,你改改吧,可以改成动态形式的,大体的形式如此
/// <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;
}
别直接用啊,你改改吧,可以改成动态形式的,大体的形式如此
#33
采用当前节点的路径
#34
OpenFileDialog ofd=new OpenFileDialog();
if(DialogResult.OK==ofd.ShowDialog())
{
string fileName =ofd.FileName;
MessageBox.Show(fileName);
}
这样得到的肯定是你要的。
if(DialogResult.OK==ofd.ShowDialog())
{
string fileName =ofd.FileName;
MessageBox.Show(fileName);
}
这样得到的肯定是你要的。
#35
不错。。。。可以用
http://webczw.3322.org
http://webczw.3322.org
#36
什么状况
#37
学习……up
#38
学习---up
#1
你的可执行文件编译到这里就应该使这个Output
#2
Environment.CurrentDirectory
#3
Application.StartupPath 可以获取当前程序的启动路径
#4
这是由于你项目的启动目录没有设置的原因
如果直接运行程序的话,它是正确的
如果直接运行程序的话,它是正确的
#5
System.IO.Path.GetFullPath(filename);
这个总可以吧
这个总可以吧
#6
这个还是不行。。还有其他的办法吗?
#7
up
#8
参见这个。假如你那个文件名叫: Program.cs
string aaa = AppDomain.CurrentDomain.BaseDirectory + "Program.cs";
textBox1.Text=Path.GetFullPath(aaa);
string aaa = AppDomain.CurrentDomain.BaseDirectory + "Program.cs";
textBox1.Text=Path.GetFullPath(aaa);
#9
说老实话,你的问题我没看明白 “当前项目下一个文件的绝对路径” 这句话是什么意思呢?
如果是在工程目录下,取到文件是没有意义的。因为你发布的时候难道还带着工程? 必然是Output(bin)
所以你能取到的目录都是相对于你所说的Output目录。
#10
用DirectoryInfo 呢?
#11
我的意思是取当前项目下一个文件的绝对路径。。。我的目的就是这个。。。不要跟发布什么的搞在一起。。。
我另有用途嘛。。
#12
楼上各位所说的我都试过了。。
取的都只是当前编译后的目录
取的都只是当前编译后的目录
#13
Application.StartupPath 取到你执行文件的绝对路径,然后根据你文件与这个文件的相对路径,得到文件的绝对路径。
如果是打开了一个文件 FullName 应该是没问题的。.
如果是打开了一个文件 FullName 应该是没问题的。.
#14
我想大家都不太明白你说的“当前项目下一个文件的绝对路径”是什么意思,能详细点吗?
#15
就是说我的工程下的一个文件。比如FORM1.CS。。
#16
我也想知道这个问题,我现在都是一层一层往上转的
如:
如:
System.IO.DirectoryInfo mDir = new System.IO.DirectoryInfo(System.Windows.Forms.Application.StartupPath);
System.IO.DirectoryInfo dir = mDir.Parent;
System.IO.DirectoryInfo dir_a = dir.Parent;
String str=dir_a.FullName;
#17
参考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
不知道你为什么需要获得代码文件的路径~~~
获得更多跟 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
#18
Response.Write(Request.PhysicalApplicationPath);
#19
呵呵,是在IDE下的绝对路径,是这个意思吗?
#20
application.startpath
#21
application.startpath获取程序启动位置绝对路径
#22
这个就是绝对路径了
#23
up
#24
Application.ExecutablePath.Trim()
#25
你的办法是绝对不行的,默认是当前程序目录,当程序中有打开或者选择文件对话框时,目录就会改变
#26
AppDomain.CurrentDomain.BaseDirectory
#27
你能获取到文件的fileInfo,不明白FullName属性为什么不行
#28
ding
#29
你为什么要获取cs file 路径? 你的程序运行的时候,已经把他们build 到dll 或者是exe 里面了
#30
就自己一层一层转吧,搞那么麻烦干什么,好像C/S的都不能直接得到当前文件路径的,只有程序启运的路径
就根据这个路径一层一层往上找
就根据这个路径一层一层往上找
#31
up
#32
对,一层一层转可以实现,我刚做完,给你个例子你参考吧
/// <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;
}
别直接用啊,你改改吧,可以改成动态形式的,大体的形式如此
/// <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;
}
别直接用啊,你改改吧,可以改成动态形式的,大体的形式如此
#33
采用当前节点的路径
#34
OpenFileDialog ofd=new OpenFileDialog();
if(DialogResult.OK==ofd.ShowDialog())
{
string fileName =ofd.FileName;
MessageBox.Show(fileName);
}
这样得到的肯定是你要的。
if(DialogResult.OK==ofd.ShowDialog())
{
string fileName =ofd.FileName;
MessageBox.Show(fileName);
}
这样得到的肯定是你要的。
#35
不错。。。。可以用
http://webczw.3322.org
http://webczw.3322.org
#36
什么状况
#37
学习……up
#38
学习---up