我编写了这样的代码,以获取文件的完整路径
string path=Path.GetFullPath("abc.txt");
即便我也尝试过这样
FileInfo fi=new FileInfo("abc.txt");
string path=fi.FullName;
实际上abc.txt存在于
中C:\\New folder\\abc.txt
但它正在显示这样的输出
"C:\\Users\\Admin\\Documents\\Visual Studio 2010\\Projects\\AuthenticationAndAuthorization\\AuthenticationAndAuthorization\\bin\\Debug\\abc.txt"
可能是什么问题请建议我
答案 0 :(得分:2)
目前你的exe被保存在你所在的位置。因此,当您使用Path.GetFullPath或FileInfo.Fullname时。在这种情况下,它采用相对路径。
问题是您的应用程序将如何知道您的abc.txt保存在哪里。因为它保存在C:\ New Folder ..
您的计划将如何在该位置进行搜索?您需要指定它在该位置搜索文件的方式。
从您的评论:您创建了该文件,您是如何创建该文件的,共享您的代码:)
答案 1 :(得分:1)
在C#中,'\'是一个转义字符。 为了抵消这种情况,C#会自动为每个现有的'\'添加额外的'\'(从而创建'\')以确保路径名是正确的。
另外,如果你没有指定完整路径(添加像C :)这样的驱动器,应用程序将默认采用bin \ debug文件夹
尝试以下行:
DirectoryInfo di = new DirectoryInfo("C:/New folder");
FileInfo[] rgFiles = di.GetFiles("abc.txt");
foreach(var file in rgFiles)
{
string path=Path.GetFullPath(file);
}
答案 2 :(得分:1)
您可以使用此代码段指定您的文件:
string fileName = string.Empty;
OpenFileDialog openDialog = new OpenFileDialog();
if (openDialog.ShowDialog() == DialogResult.OK)
{
fileName = openDialog.FileName;
// do your futher processing after you have the filename
}
答案 3 :(得分:1)
没有文件的实际路径Path.GetFullPath只是假设你的abc.txt在你的exe目录中。 你可以通过这种方式进入相对路径。
如果您的文件位于C:\ New folder \,则必须告诉Path.GetFullPath。
Path.GetFullPath不是搜索文件的方法。它只返回你的绝对路径。