来自Hell(旧版Vista安装)的幻像文件夹导致Java String.equals()问题

时间:2010-06-24 00:05:02

标签: java windows string directory

我正在编写一个搜索计算机目录的程序。在我自己的计算机上,我安装了一个先前已启动Windows Vista的驱动器。

(但是,即使“显示隐藏文件夹”也不会出现驱动器。 我可以看到运行cmd的文件夹,但这并不能解决我的问题。)

我不太关心这些文件夹,但我确实关心用它们的名字进行字符串比较。但是,当我使用File directory.getName()获取其名称时,string.equals()和string.compareTo()不能与这些幻像文件夹一起使用。

我已打印出名称,检查空格,使用了修剪等,但名为“Boot”的隐藏文件夹仍然与具有相同值的字符串不匹配。

TLDR:幻像目录使用File directory.getName()返回一个不匹配/可比较的字符串。

除了解决问题外,我只是想知道发生了什么。

2 个答案:

答案 0 :(得分:2)

您可能会在名称中隐藏字符。检查Boot文件夹的字符串长度,看它是否为4。将String转换为字符数组并检查调试器中的每个单元格。

答案 1 :(得分:0)

比较文件名时使用不变比较。