簡體   English   中英

圖像存儲在磁盤上-按名稱搜索

[英]Images stored on disk - search by name

我正在編寫一個Java應用程序(實際上是一個Struts2 Web應用程序),並且我需要存儲和檢索圖像。 我發現將圖像存儲在數據庫中不是一個好主意( 我可以在MySQL中存儲圖像 ),最好將它們寫在磁盤上的目錄中。

在某些時候,我需要訪問其名稱包含某個子字符串的所有圖像。 如果我使用的是數據庫,我將編寫如下查詢: select .. where name like %my_substring% 如何使用Java文件系統實現相同的功能? 當然,我不想加載所有圖像,然后對其進行迭代以找到具有適當名稱的圖像。

只需使用索引文件即可處理。 每次將圖像存儲在光盤上時,其名稱也會寫在索引文件中。 當您搜索子字符串時,只需搜索索引並在索引中加載帶有名稱的文件

作為您在問題中標記的答案,您聲明:

不要將圖像存儲在數據庫中。 將圖像存儲在目錄中,並將對圖像的引用存儲在數據庫中

因此,您的查詢將成為select path where name like %my_substring% (其中path是存儲對圖像的引用的列的名稱)。

執行查詢后,您的應用程序將根據查詢結果訪問圖像。

我終於選擇了沒有數據庫的解決方案(盡管@npinti提供的解決方案確實很聰明)。 所以我做了這樣的事情

File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
  if (listOfFiles[i].isFile()) {
    if(listOfFiles[i].getName().contains(my_substring)){
     //add the file to a list of files to be displayed 

}}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM