關于獲取某目錄及子目錄下所有文件且不包含隱藏文件

最近比較忙,很少寫blog了!!!

關于獲取目錄及子目錄下所有文件是常遇到的功能,一般通過遞歸遍歷實現。而生產場景中,一般是遍歷nas上的目錄,在nas上利用File.listFiles(),在linux系統上無法獲取含有中文名的文件的。這里是通過java.nio.file來實現。

直接上代碼吧

import java.io.IOException; 
import java.nio.file.*; 
import java.nio.file.attribute.BasicFileAttributes; 
import java.util.ArrayList; 
import java.util.List; /*** 遍歷目錄及其子目錄,獲取所有非隱藏文件 */
public class NonHiddenFileWalker {/*** 遍歷指定目錄,獲取所有非隱藏文件** @param startDir 起始目錄路徑* @return 非隱藏文件的路徑列表 * @throws IOException 如果訪問文件系統出錯*/public static List<Path> walkNonHiddenFiles(String startDir) throws IOException {Path rootPath = Paths.get(startDir); List<Path> fileList = new ArrayList<>();// 定義文件訪問器SimpleFileVisitor<Path> visitor = new SimpleFileVisitor<>() {// 訪問目錄前檢查是否為隱藏目錄@Overridepublic FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {if (Files.isHidden(dir))  {return FileVisitResult.SKIP_SUBTREE; // 跳過隱藏目錄及其子目錄}return FileVisitResult.CONTINUE;}// 處理文件 @Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {if (!Files.isHidden(file))  {fileList.add(file);  // 只添加非隱藏文件}return FileVisitResult.CONTINUE;}// 處理訪問失敗的情況@Overridepublic FileVisitResult visitFileFailed(Path file, IOException exc) {System.err.println(" 訪問失敗: " + file + " - " + exc.getMessage()); return FileVisitResult.CONTINUE;}};// 執行文件遍歷Files.walkFileTree(rootPath,  visitor);return fileList;}/*** 主程序入口*/public static void main(String[] args) {try {String directoryPath = "/target/directory"; // 替換為你的目標路徑List<Path> nonHiddenFiles = walkNonHiddenFiles(directoryPath);System.out.println(" 找到以下非隱藏文件:");for (Path file : nonHiddenFiles) {System.out.println(file.toString()); }} catch (IOException e) {System.err.println(" 發生錯誤: " + e.getMessage()); e.printStackTrace(); }}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91201.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91201.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91201.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker可視化管理工具lazydocker

Lazydocker 是一個用 Go 語言編寫的命令行 Docker 管理工具。它提供了一個簡潔、直觀的終端界面&#xff0c;支持鍵盤和鼠標操作&#xff0c;可通過方向鍵與快捷鍵實時查看和管理容器、鏡像、網絡等資源&#xff0c;大幅簡化了原本復雜的命令行操作&#xff0c;提升操作效率。2…

少林寺用什么數據庫?

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中國DBA聯盟(ACDU)成員&#xff0c;15年DBA工作經驗 Oracle、PostgreSQL ACE CSDN博客專家及B站知名UP主&#xff0c;全網粉絲15萬 擅長主流Oracle、MySQL、PG、高斯及…

C語言---萬能指針(void *)、查找子串(strncmp函數的應用)多維數組(一維數組指針、二維數組指針)、返回指針值函數、關鍵字(const)

一、字符串與指針用字符指針指向一個字符串&#xff0c;可以不定義字符數組&#xff0c;而定義字符指針。用字符指針指向字符串中的字符。不能使用指針去改變不能修改的空間。eg1. 運用指針將 src 的內容拷貝到 dest 中去void Strcpy(char *dest, char *src) {while(*src ! \0)…

Keepalived 實戰

一、高可用集群基礎核心概念與指標集群類型&#xff1a;LB&#xff08;負載均衡&#xff09;&#xff1a;如 LVS、HAProxy、Nginx&#xff0c;提升吞吐量&#xff1b;HA&#xff08;高可用&#xff09;&#xff1a;保障核心服務&#xff08;數據庫、Redis&#xff09;連續性&am…

窗口函數替代子查詢的復雜查詢簡化技巧

窗口函數通過單次掃描完成分析計算&#xff0c;能大幅簡化子查詢結構并提升性能&#xff0c;尤其在排名、累計計算等場景?15。以下是核心優化技巧&#xff1a;一、排名場景替代方案?部門工資排名?傳統子查詢需自連接和聚合計數&#xff1a;sqlSELECT e1.name, e1.salary, (S…

深度學習:預訓練和warm up的區別

“預訓練&#xff08;Pre-training&#xff09;”和“Warm-up&#xff08;預熱&#xff09;”是深度學習中常見的兩個訓練策略&#xff0c;它們雖然都在訓練初期起作用&#xff0c;但本質和目的完全不同。一、預訓練&#xff08;Pre-training&#xff09;1. 定義預訓練是指&…

Apache Ignite中分布式信號量(Distributed Semaphore)的說明和使用示例

這段內容是關于 Apache Ignite 中 分布式信號量&#xff08;Distributed Semaphore&#xff09; 的說明和使用示例。我們來一步步解析&#xff0c;幫助你深入理解它的含義和用途。&#x1f539; 一、什么是 Semaphore&#xff08;信號量&#xff09;&#xff1f; 在并發編程中&…

怎么提升服務器的防攻擊能力!

提升服務器的防攻擊能力需要從??架構設計、技術防護、運維管理??等多維度入手&#xff0c;覆蓋網絡層、系統層、應用層及數據層的安全防護。以下是具體的策略和實踐方法&#xff1a;??一、基礎安全加固&#xff1a;消除自身漏洞??服務器自身的脆弱性是最常見的攻擊入口…

vscode配置rust環境

1.官網下載vscode&#xff0c;安裝 2.vscode命令行運行&#xff1a; Invoke-WebRequest https://win.rustup.rs/x86_64 -OutFile rustup-init.exe然后&#xff1a; .\rustup-init.exe3.驗證 先配置path&#xff1a; $env:Path ";$env:USERPROFILE\.cargo\bin"查看是…

最新版 HarmonyOS NEXT 開發工具安裝教程:如何在 macOS 系統安裝 DevEco Studio 5.0.3 編輯器?

最新版 HarmonyOS NEXT 開發工具安裝教程&#xff1a;如何在 macOS 系統安裝 DevEco Studio 5.0.3 編輯器&#xff1f; 什么是 DevEco Studio&#xff1f; DevEco Studio 是華為為 HarmonyOS 開發的強大集成開發環境&#xff08;IDE&#xff09;&#xff0c;專為開發 Harmony…

電商項目統一認證方案設計與實戰

1. 微服務網關整合 OAuth2.0 設計思路分析 網關整合 OAuth2.0 有兩種思路&#xff0c;一種是授權服務器生成令牌, 所有請求統一 在網關層驗證&#xff0c;判斷權限等操作&#xff1b;另一種是由各資源服務處理&#xff0c;網關只做請求 轉發 。 比較常用的是第一種&#xf…

學習Markdown

標題一 標題二 標題三 標題四 標題五 標題六這是一段引用文本直接編寫&#xff0c;段落換行是末尾兩個以上的空格&#xff0b;回車 或者在段落后加一個空行 粗體語法&#xff1a;使用兩個星號 ** 或兩個下劃線 __ 包圍文字&#xff1a;這是粗體文字使用星號 這是__粗體文字__使…

劇本殺系統 App 開發:科技賦能,重塑劇本殺游戲體驗

在科技飛速發展的當下&#xff0c;各個行業都在積極尋求與科技的融合&#xff0c;以實現創新和升級。劇本殺行業也不例外&#xff0c;劇本殺系統 App 的開發正是科技賦能的生動體現&#xff0c;它重塑了傳統的劇本殺游戲體驗&#xff0c;為玩家帶來了全新的感受。劇本殺系統 Ap…

wvp-gb28181-pro 只用jar運行

編譯前端后npm install --global yarnyarn --registryhttps://registry.npmjs.org installyarn run build&#xff0c;生成的前端文件&#xff0c;會在wvp-GB28181-pro\src\main\resources\static&#xff0c;因為是在resources中&#xff0c;打maven打包后會一起打到jar中&…

深度學習(魚書)day06--神經網絡的學習(后兩節)

深度學習&#xff08;魚書&#xff09;day06–神經網絡的學習&#xff08;后兩節&#xff09;一、梯度 像 這樣的由全部變量的偏導數匯總而成的向量稱為梯度&#xff08;gradient&#xff09;。 梯度實現的代碼&#xff1a; def numerical_gradient(f, x):h 1e-4 # 0.0001grad…

學習嵌入式的第三十四天-數據結構-(2025.7.29)數據庫

數據庫基礎概念 數據庫是用于存儲和管理海量數據的應用程序&#xff0c;提供數據增刪改查及統計功能&#xff08;如最大值、最小值、平均數等&#xff09;。通過SQL語句操作數據&#xff0c;以表格形式管理存儲。 數據庫分類 關系型數據庫 Oracle&#xff08;大型&#xff0…

STM32——HAL庫

總&#xff1a;STM32——學習總綱 一、簡介 1.1 CMIS簡介 所有廠家為了市場兼容性推出的標準 arm架構 1.2 HAL庫簡介 1.2.1 各種庫優缺點 二、 STM32 Cube固件包 ST公司為CMSIS 中間層開發的pack&#xff0c;包含HAL。 2.1 獲取方式 ST官網&#xff1a;st.com/content/st_c…

數據結構-圖的相關定義

圖-多對多Graph&#xff08;V,E&#xff09;&#xff0c;圖&#xff08;頂點Vertex&#xff0c;邊Edge&#xff09;圖可以沒有邊&#xff0c;只有一個頂點也叫圖&#xff0c;但是單獨的一條邊&#xff0c;或者一個頂點連一條邊&#xff0c;不能叫圖有向圖&#xff1a;無向圖&am…

B 站搜一搜關鍵詞優化:精準觸達用戶的流量密碼

在 B 站內容生態中&#xff0c;搜一搜功能是用戶主動獲取信息的重要渠道&#xff0c;而關鍵詞優化則是讓你的視頻在搜索結果中脫穎而出的關鍵。通過合理優化關鍵詞&#xff0c;能提升視頻曝光率&#xff0c;吸引精準流量&#xff0c;為賬號發展注入強勁動力。以下從關鍵詞挖掘、…

Python爬蟲實戰:研究purl庫相關技術

1. 引言 隨著互聯網數據量的爆炸式增長,網絡爬蟲已成為數據采集、輿情分析和學術研究的重要工具。Python 憑借其豐富的庫生態和簡潔語法,成為開發爬蟲的首選語言。本文提出的爬蟲系統結合 requests 進行 HTTP 請求、BeautifulSoup 解析 HTML,并創新性地引入 purl 庫處理復雜…