Ruby中如何遍歷指定目錄的文件
在工作中,我們經(jīng)常需要在Ruby中遍歷指定目錄的文件。這篇文章將介紹兩種方法來(lái)實(shí)現(xiàn)這個(gè)需求。方法一:使用自定義的遞歸函數(shù)首先,我們可以使用自定義的遞歸函數(shù)來(lái)遍歷指定目錄的文件。下面是一個(gè)示例代碼:``
在工作中,我們經(jīng)常需要在Ruby中遍歷指定目錄的文件。這篇文章將介紹兩種方法來(lái)實(shí)現(xiàn)這個(gè)需求。
方法一:使用自定義的遞歸函數(shù)
首先,我們可以使用自定義的遞歸函數(shù)來(lái)遍歷指定目錄的文件。下面是一個(gè)示例代碼:
```ruby
#!/usr/bin/ruby
def traverse(path)
if (path)
puts "Dirs: #{path}"
(path) do |file|
if file ! "." and file ! ".."
traverse("#{path}/#{file}")
end
end
else
puts "Files: #{path}"
end
end
traverse("d:/vmware")
```
通過(guò)調(diào)用`traverse`函數(shù),并傳入指定目錄的路徑,我們可以打印出該目錄下的所有文件和子目錄。
方法二:使用Ruby內(nèi)置的Find模塊
其實(shí),在Ruby中已經(jīng)定義了``方法來(lái)處理這種情況。我們可以使用該方法來(lái)實(shí)現(xiàn)文件遍歷,代碼如下:
```ruby
#!/usr/bin/ruby
require 'find'
("/usr/local/src") do |filename|
p filename
end
```
通過(guò)調(diào)用``方法,并傳入指定目錄的路徑,我們可以遍歷該目錄下的所有文件和子目錄,并打印出它們的路徑。
使用Shell腳本遍歷目錄
如果我們想在Shell腳本中實(shí)現(xiàn)類似的需求,比如遍歷`/usr/local/src`目錄及其子目錄下的所有文件,我們可以使用遞歸的思想來(lái)實(shí)現(xiàn)。下面是一個(gè)示例代碼:
```bash
#!/bin/bash
function traverse() {
for file in $(ls $1)
do
if [ -d "$1/$file" ]
then
traverse "$1/$file"
else
echo "$1/$file"
fi
done
}
traverse "/usr/local/src"
```
通過(guò)調(diào)用`traverse`函數(shù),并傳入指定目錄的路徑,我們可以打印出該目錄下的所有文件和子目錄。
以上是關(guān)于在Ruby和SHELL中如何遍歷指定目錄的文件的兩種方法。根據(jù)具體場(chǎng)景選擇合適的方法來(lái)實(shí)現(xiàn)你的需求。