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来获取目录对象。使用它,您可以获取当前目录中的文件并进行相应的处理。