获取目录中的所有当前文件名并在控制台C#中写出

时间:2009-11-15 17:37:22

标签: c# file-io filenames

我正在编写一个程序,需要能够列出所有已安装的应用程序,并且它会通过在特定目录中列出它的所有卸载程序来实现。此代码无效,并且目录已创建,目录中有文件

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");

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

此代码似乎正常,请使用此代码:

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();
    }

}

是的,目录将作为完整路径提供,如前面的答案和我的代码片段中所述。

答案 3 :(得分:1)

尝试

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