【问题标题】:Get All current file names in directory and write it out in console C#获取目录中的所有当前文件名并将其写入控制台 C#
【发布时间】:2009-11-15 17:37:22
【问题描述】:

我正在编写一个程序,该程序需要能够列出所有已安装的应用程序,它会通过在特定目录中列出所有卸载程序来做到这一点。这段代码不起作用,创建了目录并且目录中有文件

if (startarg.Contains("-il") == true)
            {
                //Lists all installed programs here
                DirectoryInfo uninstalldir = new DirectoryInfo("Uninstallers");
                FileInfo[] UninstallerFiles = uninstalldir.GetFiles();
                Console.WriteLine("Listing all applications installed with Simtho");
                foreach (FileInfo files in UninstallerFiles)
                {
                    Console.WriteLine(files.Name.ToString());
                }

我知道它需要完整路径,但我不知道完整路径,所以它需要是一个变量,我怎样才能使这样的事情起作用?

DirectoryInfo uninstalldir = new DirectoryInfo(Directory.GetCurrentDirectory + "\" + "Uninstallers");

【问题讨论】:

    标签: c# file-io filenames


    【解决方案1】:

    我相信您的“DirectoryInfo”对象需要完整路径才能找到卸载程序文件夹,例如:“C:....”

    【讨论】:

    • 问题是,完整路径需要是当前目录,因为这个程序要跨平台,路径会改变
    • 使用 System.Environment.CurrentDirectory 获取目录对象。使用它,您可以获取当前目录中的文件并进行相应处理。
    【解决方案2】:

    我敢打赌,由于某种原因,您最终将错误的路径传递给了 DirectoryInfo 构造函数。为了调试,我将使用以下代码获取目录的完整路径,并检查它是否实际上引用了所需的路径:

    Path.Combine(Directory.GetCurrentDirectory(), "Uninstallers");
    

    【讨论】:

      【解决方案3】:

      此代码似乎可以正常工作,请使用:

      class Program
      {
          static void Main(string[] args)
          {
              Program p = new Program();
              p.getAllFiles(@"D:\Old_Desktop");
      
          }
      
          public void getAllFiles(string directoryPath)
          {
                  DirectoryInfo dirInfo= new DirectoryInfo(directoryPath);
                  FileInfo[] files= dirInfo.GetFiles();
                  foreach(FileInfo f in files)
                  {
                      Console.WriteLine(f.FullName);
                  }
      
                  Console.ReadLine();
          }
      
      }
      

      是的,该目录将作为前面的答案和我的代码 sn-p 中提到的完整路径给出。

      【讨论】:

        【解决方案4】:

        试试

        DirectoryInfo uninstalldir = new DirectoryInfo(Path.GetFullPath("Uninstallers"));
        

        【讨论】:

          猜你喜欢
          • 2012-08-11
          • 1970-01-01
          • 2018-05-25
          • 2015-01-05
          • 2021-10-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-16
          相关资源
          最近更新 更多