Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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
Windows 查找pg_dump.exe的路径_Windows_Delphi_Path - Fatal编程技术网

Windows 查找pg_dump.exe的路径

Windows 查找pg_dump.exe的路径,windows,delphi,path,Windows,Delphi,Path,我目前正在Delphi中的一个项目中工作,该项目使用Postgres作为数据库 我正在使用pg_dump.exe创建完整备份。 但是我需要知道目标机器上pg_dump.exe的确切路径 它可以位于C:\prgram files\或C:\program files(x86)上。还有任何其他分区(d:,e:,…) 将pg-dump.exe的副本放在我的应用程序文件夹中并不能解决问题 更新 在所有驱动器上按文件名搜索文件不是一个好的解决方案 在这种情况下,我必须为所有版本的PostgreSQL计算文件

我目前正在Delphi中的一个项目中工作,该项目使用Postgres作为数据库

我正在使用pg_dump.exe创建完整备份。 但是我需要知道目标机器上pg_dump.exe的确切路径

它可以位于C:\prgram files\或C:\program files(x86)上。还有任何其他分区(d:,e:,…)

将pg-dump.exe的副本放在我的应用程序文件夹中并不能解决问题

更新

在所有驱动器上按文件名搜索文件不是一个好的解决方案

在这种情况下,我必须为所有版本的PostgreSQL计算文件的校验和。对于PG_restore也是如此

(如果没有其他办法,最后我会这么做)

因为

1-他们可能是此文件的某个副本,路径错误。(PG_DUMP.exe在没有DLL的文件夹中,它不会运行。我检查了它)

2-具有相同名称的用户文件可以愚弄程序(甚至是名为PG_DUMP.exe的蠕虫或病毒的副本)


3人在紧急情况下获取备份。我认为在用户硬盘上的数十万个文件中搜索一个文件并不是一个明智的解决方案。

如果pg_dump.exe在路径中,那么你可以使用
where pg_dump.exe
找出它在哪里。这个问题根本没有显示任何研究工作。@KenWhite感谢你的回答。我认为这个答案不是一个很好的解决方案。按文件名查找文件非常简单。你向我建议最坏的方法吗?如果有另一个文件同名(甚至是病毒)我将只执行这个文件,它的名称是pg_dump。我问是否有任何注册表值或一个棘手的方法来查找我需要的真实文件need@nolaspeaker无法依赖此项。它不在正常安装的路径上。我对其进行了测试。找不到给定模式的文件。因此,请查找
pg_dump.exe
,然后检查是否有其他需要的文件如果恶意软件作者想用
pg_dump
欺骗你运行他们的代码,你凭什么认为他们也不能篡改注册表信息?如果pg_dump.exe在路径中,那么你可以使用
where pg_dump.exe
找出它在哪里。这个问题根本没有显示任何研究工作@KenWhite谢谢你的回复。我认为这个答案不是一个好的解决方案。按文件名查找文件非常简单。你能告诉我最坏的方法吗?如果有其他同名文件(甚至是病毒)我将只执行这个文件,它的名称是pg_dump。我问是否有任何注册表值或一个棘手的方法来查找我需要的真实文件need@nolaspeaker无法依赖此项。它不在正常安装的路径上。我对其进行了测试。找不到给定模式的文件。因此,请查找
pg_dump.exe
,然后检查是否有其他需要的文件如果恶意软件作者想用
pg_dump
欺骗你运行他们的代码,你凭什么认为他们也不能篡改注册表信息?