Tools.DiffFiles returns 错误 <FileName> 不存在或者是一个目录

Tools.DiffFiles returns error <FileName> does not exist or is a directory

我正在尝试在 Visual Studio 2015 命令 Window 中使用 Tools.DiffFiles。

当我输入文件名时,我从文件系统获得智能感知,所以我知道命令 Window 可以访问我的文件系统并且我知道文件存在。

我执行命令时,返回错误信息“, does not exist or is a directory”

我试过将文件放在不同的文件夹中,引用和不引用文件名,将文件名缩短到不需要引号的地方等等,但没有解决。

很棒的工具,但为什么找不到我的文件?

编写命令时Tools.DiffFiles 请注意不要在文件路径之间包含逗号。换句话说,命令定义是 'Tools.DiffFiles path1 path2' 而不是 'Tools.DiffFiles path1, path2'。 在后一种情况下,VS 尝试比较文件 'path1,' 和 'path2' 抱怨找不到第一个文件。 希望这有帮助。

最终在 Visual Studio 17 中对我有用的是进入完整路径。在键入 Tools.DiffFiles 后使用命令 Window 为路径提供的 intellisense/autocomplete 时,它以我打开的项目文件夹开始路径,离开路径的开头,我遇到了上面相同的结果。

Tools.DiffFiles Tmp\logit.txt Tmp\logit2.txt
Tmp\logit.txt does not exist or is a directory

但是,当我开始输入根映射驱动器(例如 c:\),然后继续按“\”以遍历目录到您想要的文件时,在您打开的项目中,它最终起作用了。

Tools.DiffFiles c:\Tmp\logit.txt c:\Tmp\logit2.txt

我注意到的另一件事是,如果目录或文件名有一个 space (c:\My Documents),例如,intellisense/autocomplete 足够聪明,可以在路径周围添加双引号,这是必需的。如果路径没有 spaces,(c:\MyDocuments) 它会去掉引号。如果您尝试手动输入路径并在遇到 space 时将引号去掉,它也不起作用。

>Tools.DiffFiles c:\Tmp\logit.txt c:\Tmp\logit 1 copy.txt
c:\Tmp\logit does not exist or is a directory


>Tools.DiffFiles c:\Tmp\logit.txt "c:\Tmp\logit 1 copy.txt"

将文件路径用引号引起来,例如>Tools.DiffFiles "c:\file1.txt" "c:\file2.txt" 然后它工作正常。