从文件中获取完整路径的问题

时间:2015-11-05 08:54:37

标签: c# winforms

我编写了这样的代码,以获取文件的完整路径

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"

可能是什么问题请建议我

4 个答案:

答案 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不是搜索文件的方法。它只返回你的绝对路径。