[解決済み] Rubyで1つのコマンドでディレクトリ/ファイル/シンボリックリンクが存在するかどうかをチェックする方法
2023-05-17 01:14:17
質問
ディレクトリ/ファイル/シンボリックリンクなどのエンティティ(より一般化されたもの)が存在するかどうかを検出する単一の方法はありますか?
私は、ディレクトリ、ファイル、またはシンボリックリンクである可能性があるパスの配列をチェックする必要があるため、単一の関数が必要です。私は知っています。
File.exists?"file_path"
はディレクトリとファイルに対しては動作しますが、 シンボリックリンクに対しては動作しません (これは
File.symlink?"symlink_path"
).
どのように解決するのですか?
標準のFileモジュールでは、通常の ファイルテスト が利用できます。
RUBY_VERSION # => "1.9.2"
bashrc = ENV['HOME'] + '/.bashrc'
File.exist?(bashrc) # => true
File.file?(bashrc) # => true
File.directory?(bashrc) # => false
そこにあなたの欲しいものがあるはずです。
OP: "ありがとう、でも3つともtrueかfalseが必要なんだ。
明らかに違いますね。OK、次のようなことを試してみてください。
def file_dir_or_symlink_exists?(path_to_file)
File.exist?(path_to_file) || File.symlink?(path_to_file)
end
file_dir_or_symlink_exists?(bashrc) # => true
file_dir_or_symlink_exists?('/Users') # => true
file_dir_or_symlink_exists?('/usr/bin/ruby') # => true
file_dir_or_symlink_exists?('some/bogus/path/to/a/black/hole') # => false
関連
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Pythonでディレクトリが存在するかどうかを確認する方法
-
[解決済み] Pythonでファイルサイズを確認するには?
-
[解決済み] Rubyで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] SVNでディレクトリを無視するには?
-
[解決済み] Rubyでファイルに書き込むには?
-
[解決済み] Goでファイルが存在するかどうかを確認する方法は?
-
[解決済み】シンボリックリンクが存在するかどうかを確認する方法
-
[解決済み] ruby システムコマンドの終了コードチェック
-
[解決済み] 配列要素のインデックスを O(n) よりも高速に取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ファイルの存在を確認する方法【重複あり
-
[解決済み] Rubyでシングルクォートとダブルクォートを使い分けるとパフォーマンスが上がりますか?
-
[解決済み] Rubyでjavaのインターフェースに相当するものは何ですか?
-
[解決済み] rubyのinjectはreduceと同じ意味ですか?
-
[解決済み] 文字列内の複数の空白と改行を削除する
-
[解決済み] 変数名を使ったRubyの正規表現
-
[解決済み] Rubyで既存のハッシュに追加する方法
-
[解決済み] Rubyで1行でメソッドを定義するには?
-
[解決済み] クラスのインスタンスメソッドの一覧を取得する
-
[解決済み] Rubyのモジュール/ミキシンからクラスメソッドを継承する