我正在编写一个程序,需要能够列出所有已安装的应用程序,并且它会通过在特定目录中列出它的所有卸载程序来实现。此代码无效,并且目录已创建,目录中有文件
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");
答案 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"));