Unix 上 Java 中不区分大小写的目录访问

发布于 2024-11-23 21:55:17 字数 208 浏览 1 评论 0原文

我正在使用 Unix,它使用区分大小写的文件名,并且需要一种以不区分大小写的方式访问它们的方法。

具体来说,有时程序需要进入项目文件夹下的 /images 目录。但因为这个目录是由用户手动创建的,所以它有时可能被命名为 Images、IMAGES、iMaGes...您明白了。

鉴于保证任何项目文件夹中只有一个图像目录,我如何直接访问它而不获取整个目录列表并循环遍历它?

I am working on Unix, which uses case sensitive filenames and need a way to access them in a case-insensitive manner.

Specifically, at time the program needs to get into a /images directory under a project folder. But because this directory is created manually by the user, it may sometimes be named Images, IMAGES, iMaGes...you get the idea.

Given that there is guaranteed to be only one images directory in any project folder, how can I access this directly without getting the entire directory list and looping through it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

落在眉间の轻吻 2024-11-30 21:55:17

除了读取目录名称的完整列表并检查每个目录名称是否与您的模式匹配之外,没有其他方法了。

您可以通过使用 FilenameFilter 来隐藏它,该过滤器会过滤所有与您的模式不匹配的文件夹名称(iaw,任何文件夹,其小写名称等于 images )。这可能是一个更好的方法,因为它将返回所有候选者(iaw:./Images./imaGes./ IMAGES 如果您的创意用户放置了多个图像文件夹;) )

There is no other way then reading the full list of directory names and check each and everyone if it matches your pattern.

You can hide it by using a FilenameFilter that filters all folder names that don't match your pattern (iaw, any folder, whose lowercased name is equal to images). This may be a better approach, because it will return all candidates (iaw: ./Images, ./imaGes, ./IMAGES if you have creative users that place more then one image folder ;) )

_畞蕅 2024-11-30 21:55:17

In Java 7 there is something called a PathMatcher which allows you to use regular expressions to find a file.

我不会写诗 2024-11-30 21:55:17

没有任何解决方案不涉及循环遍历目录中的条目列表或小写字母和大写字母的可能排列列表。

Unix 区分大小写,当只有 /Image 存在时询问 /image 不会给你一个肯定的答案。

唯一的例外是使用的文件系统不区分大小写(例如 FAT 变体不区分大小写),但这通常仅真正适用于外部介质。

There is no solution that doesn't involve looping over either the list of entries in the directory or the list of possible permutations of lower and upper case letters.

Unix is case sensitive and asking for /image when only /Image exists won't get you a positive answer.

The only exception is when the file system that's used is not case sensitive (for example FAT variants are not case-sensitive), but that only really applies for external media, usually.

小嗲 2024-11-30 21:55:17

如果它是用户创建的文件夹,则为他们提供文件选择器 UI 来选择该文件夹。或者,当创建项目时,也以稍后可预测的方式创建图像文件夹。

If it's a folder the user created, then give them a file chooser UI to select the folder. Either that or, when the project is created, create the images folder too in a way that's predictable later.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文