Saya mencoba menulis skrip yang secara otomatis memeriksa atau memperbarui URL Subversion berdasarkan pada apakah direktori yang ditentukan ada atau tidak.
Untuk beberapa alasan, kode saya tidak berfungsi dan selalu mengembalikan true walaupun itu salah:
def directory_exists?(directory)
return false if Dir[directory] == nil
true
end
Apa yang saya lakukan salah?
Dir.exists?
tidak bersih dariFile.directory?
?Dir.exists?
sudah usang, gunakanDir.exist
Dir.exist?
Anda juga dapat menggunakan
Dir::exist?
seperti ini:sumber
undefined method `exists?' for Dir:Class (NoMethodError)
. Juga, bentuk jamak sekarang sudah usang, gunakan.exist?
saja.Semua jawaban lain benar, namun, Anda mungkin memiliki masalah jika Anda mencoba memeriksa direktori di direktori home pengguna. Pastikan Anda memperluas jalur relatif sebelum memeriksa:
sumber
Dir[]
mengembalikan array, jadi itu tidak akan pernah terjadinil
. Jika Anda ingin melakukannya dengan cara Anda, Anda bisa melakukannyayang akan kembali
true
jika tidak ditemukan.sumber
Anda bisa menggunakan
Kernel#test
:itu mendapatkan itu berasal dari https://ss64.com/bash/test.html Anda akan melihat bash
test
memiliki bendera ini-d
untuk menguji apakah ada direktori-d file True if file is a Directory. [[ -d demofile ]]
sumber