2011-07-12 84 views
0

我正在使用Unix,它使用區分大小寫的文件名,並且需要一種以不區分大小寫的方式訪問它們的方法。Unix上Java中不區分大小寫的目錄訪問

具體來說,程序需要進入項目文件夾下的/ images目錄。但是因爲這個目錄是由用戶手動創建的,所以它有時可能會被命名爲Images,IMAGES,iMa ...等等。

鑑於在任何項目文件夾中只能保證一個圖像目錄,我如何直接訪問它而不需要獲取整個目錄列表並循環播放呢?

+1

循環瀏覽目錄列表並進行不區分大小寫的比較有什麼不對?目錄中是否有許多其他文件夾/文件(特別是如果你這樣做了一次,並保存他們在配置文件中稱爲它的東西) – Foon

+0

你有三個'圖像','圖像','iMaGes'在與Unix同時。您可能需要一種方法來確定哪個是首選。 –

回答

3

沒有其他方法,然後閱讀目錄名稱的完整列表,並檢查每個人和每個人是否符合你的模式。

可以隱藏它通過使用FilenameFilter用於篩選不匹配您的模式中的所有文件夾的名稱(IAW,任何文件夾,其小寫的名字等於images)。這可能是一個更好的辦法,因爲它會返回所有候選人(IAW:./Images./imaGes./IMAGES如果你有把更多然後一個圖像文件夾創造性的用戶;))

+0

用於'FilenameFilter'的+1 – dhblah

0

如果它是用戶創建的文件夾,然後給他們一個文件選擇器UI來選擇文件夾。不管是那個,還是在創建項目時,都會以稍後可預測的方式創建圖像文件夾。

+0

這確實是該程序現在的工作原理,但遺憾的是,我希望支持的遺留項目不會自動創建有保證的圖像文件夾。 – donnyton

1

有沒有解決辦法,不涉及超過要麼循環目錄的大寫和小寫字母可能排列的列表項的列表。

Unix 區分大小寫,並要求/image當只有/Image存在將不會得到你的肯定答案。

唯一的例外是使用的文件系統不區分大小寫(例如,FAT變體不區分大小寫),但通常這隻適用於外部介質。