Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取目录中的所有当前文件名并在控制台C中写出#_C#_File Io_Filenames - Fatal编程技术网

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

C# 获取目录中的所有当前文件名并在控制台C中写出#,c#,file-io,filenames,C#,File Io,Filenames,我正在编写一个程序,需要能够列出所有已安装的应用程序,它将通过在特定目录中列出它的所有卸载程序来做到这一点。此代码不工作,目录已创建,目录中有文件 if (startarg.Contains("-il") == true) { //Lists all installed programs here DirectoryInfo uninstalldir = new DirectoryInfo("Uninstal

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

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

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

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

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

}
是的,正如前面的答案和我的代码片段中提到的那样,目录将作为完整路径提供。

试试看

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

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

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

问题是,完整路径必须是当前目录,因为路径将更改,因为此程序将是多平台使用System.Environment.CurrentDirectory来获取目录对象。使用它,您可以获取当前目录中的文件并进行相应的处理。