【问题标题】:How to get full file path from file name?如何从文件名中获取完整的文件路径?
【发布时间】:2012-11-01 11:15:30
【问题描述】:

如何获取给定文件的完整路径?

例如我提供:

string filename = @"test.txt";

结果应该是:

Full File Path = C:\Windows\ABC\Test\test.txt

【问题讨论】:

  • 您要搜索驱动器上的test.txt 文件并返回其路径还是要附加一些默认路径到该文件?
  • 由于在标记时间和更改完成之间,这里是更新链接,完全重复stackoverflow.com/questions/714101/…

标签: c# winforms


【解决方案1】:

试试

string fileName = "test.txt";
FileInfo f = new FileInfo(fileName);
string fullname = f.FullName;

【讨论】:

  • 您好,感谢您的回复。它正在返回当前目录,但我需要所有目录。
【解决方案2】:

使用 Path.GetFullPath():

http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx

这应该返回完整的路径信息。

【讨论】:

    【解决方案3】:

    你可以使用:

    string path = Path.GetFullPath(FileName);
    

    它将返回该文件的完整路径。

    【讨论】:

      【解决方案4】:

      Directory.GetCurrentDirectory

      string dirpath = Directory.GetCurrentDirectory();
      

      在文件名前添加此目录路径以获取完整路径。

      正如@Dan Puzey 在 cmets 中指出的那样,最好使用 Path.Combine

      Path.Combine(Directory.GetCurrentDirectory(), filename)
      

      【讨论】:

      • 不要放在前面。请改用Path.Combine
      【解决方案5】:

      我知道我的回答为时已晚,但它可能对其他人有帮助
      试试看,

      Void Main()
      {
      string filename = @"test.txt";
      string filePath= AppDomain.CurrentDomain.BaseDirectory + filename ;
      Console.WriteLine(filePath);
      }
      

      【讨论】:

      • 根据 Microsoft Docs,“程序集解析器”使用 BaseDirectory 来探测程序集。它解析为可执行路径(不是工作目录),例如“bin/Debug/...”。因此,它只会在工作目录和可执行目录相同的某些边缘情况下解决 OP 的问题。在大多数其他情况下,当前用户将无法访问可执行目录。
      【解决方案6】:

      试试..

      Server.MapPath(FileUpload1.FileName);
      

      【讨论】:

      • 如果我理解了这个问题,MapPath 确实是要走的路msdn.microsoft.com/en-us/library/…
      • HttpContext 在 WinForms 中不可用
      • Server.MapPath 用于基于 IIS/Web 的应用程序。问题上的标签是 windows
      • windows 窗体需要我。
      【解决方案7】:
      private const string BulkSetPriceFile = "test.txt";
      ...
      var fullname = Path.GetFullPath(BulkSetPriceFile);
      

      【讨论】:

        【解决方案8】:

        试试:

        string fileName = @"test.txt";
            string currentDirectory = Directory.GetCurrentDirectory();
            string[] fullFilePath = Directory.GetFiles(currentDirectory, filename, SearchOption.AllDirectories);
        

        它将当前目录及其子目录中所有此类文件的完整路径返回到字符串数组fullFilePath。如果只存在一个文件,它将位于“fullFileName[0]”中。

        【讨论】:

          【解决方案9】:

          可以获取当前路径:

          string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
          

          祝你好运!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-04-13
            • 1970-01-01
            • 2011-07-10
            • 2012-01-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多