IFileStore无法从带有重音符号的路径中读取Eclipse RCP

时间:2019-02-11 11:59:47

标签: java eclipse-plugin eclipse-rcp

IFileStore代表我的RCP应用程序的本地文件系统中的文件。在Windows中,任何路径都可以完美运行。但是,在mac os中,如果path包含áéí。

之类的重音字符,则iFileStore对象将无法正确获取信息。
IFileInfo iFileInfo = iFileStore.fetchInfo();

这可以解决吗?

1 个答案:

答案 0 :(得分:0)

macOS对文件路径使用“分解”格式-重音符号与字符分开存储。这就是Unicode NFD格式。

在Eclipse插件中,您可以使用com.ibm.icu.text.Normalizer2将字符串转换为分解格式

Normalizer2 normalizer = Normalizer2.getNFDInstance();

String decomposed = normalizer.normalize(string);

使用

EFS.getLocalFileSystem().getStore(new Path(decomposed));

从路径中获取IFileStore