2

次のような名前のファイルがあります/path/to/file/dir with spaces/mytiff-?.tif。irb では、次の両方を試します。

open("/path/to/file/dir with spaces/mytiff-?.tif", 'rb')
File.open("/path/to/file/dir with spaces/mytiff-?.tif", 'rb') 

そして、私はエラーが発生しています:

Errno::ENOENT: No such file or directory. 

?また、文字列内のをに置き換えてみました\?

Ruby 2.0.0 を使用しています。ファイルはネットワーク ドライブ (CIFS)、クライアントは Mac (ライオン) です。

アップデート

助けてくれてありがとう。問題はまだ解決されていません。

$ ls "/Volumes/rmrpp/MLP Library/Bridgland 1927 - North Saskatchewan/Stations/420/Repeat Masters/"                    
HIG2008_B27_420-100.tif HIG2008_B27_420-90.tif  HIG2008_B27_420-92.tif  HIG2008_B27_420-94.tif  HIG2008_B27_420-96.tif  HIG2008_B27_420-98.tif  HIG2008_B27_420-?.tif
HIG2008_B27_420-101.tif HIG2008_B27_420-91.tif  HIG2008_B27_420-93.tif  HIG2008_B27_420-95.tif  HIG2008_B27_420-97.tif  HIG2008_B27_420-99.tif
$ irb
1.9.3p194 :001 > t = File.open("/Volumes/rmrpp/MLP Library/Bridgland 1927 - North Saskatchewan/Stations/420/Repeat Masters/HIG2008_B27_420-?.tif",'rb'); nil
Errno::ENOENT: No such file or directory - /Volumes/rmrpp/MLP Library/Bridgland 1927 - North Saskatchewan/Stations/420/Repeat Masters/HIG2008_B27_420-?.tif
    from (irb):1:in `initialize'
    from (irb):1:in `open'
    from (irb):1
    from /Users/mlp/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
1.9.3p194 :002 > t = File.open("/Volumes/rmrpp/MLP Library/Bridgland 1927 - North Saskatchewan/Stations/420/Repeat Masters/HIG2008_B27_420-98.tif",'rb'); nil
 => nil 
1.9.3p194 :003 > t.size
 => 50124180 

ご覧のとおり、ファイルは存在します (bash でリストしています)。irb に入り、ファイルをバイナリとして読み取ろうとします。ファイル パスは引用符で囲まれています。失敗します。同じディレクトリから別のファイルを試してみましたが、うまくいきました。

@mu_is_too_short が正しいと思います。たぶん?まったくクエスチョンマークではありません。私が考えることができる唯一の実行可能な解決策は、謎の疑問符でファイルの名前を手動で変更することです。他のアイデアはありますか?

4

1 に答える 1