2017-06-16 7 views
1

ファイル属性はどのように取得されますか?私は主に、サイズを取得するために探しているだけでなく、その最後のアクセス時間と他の属性。Common Lispでファイルサイズ(および他の属性)を取得する方法は?

(with-open-file (file "some file name") 
    (file-length file)) 

は仕事をしていることになりそうだけど:

  • それはストリームを取得します。これは他の部分とuncoherentある

    私だけなので、この方法を使用しているストリームを取得します(file-length some-file)を見つけましたのAPIの

  • 本当に短い関数はありませんか?
  • (それを行うための最も効率的な方法である?)

私はOsicatでファイルの長さや属性に関連する何も表示されません。たぶんそれはその役割ですか、私は機能要求を記入しますか?

Practical CLファイル長については、Osicatを参照してください。それだけです。

CL cookbookに関する情報がなくなり、awesome-clのリストには "posix"または "file"関連の資料がなくなりました。

like in elispと感謝します。

おかげ

編集:多分iolibではなくits online docがuncompleteであり、それは「パス名ライブラリとファイルシステムユーティリティ」を有するに発表していてもファイルの話ではないように見えます。 https://github.com/sionescu/iolib/blob/master/src/os/os-unix.lispOsicat

答えて

2

、あなたがファイルにstatを呼び出し、あなたは構造で物事の束を得る:

(describe (osicat-posix:stat #P"/tmp/file")) 

#<OSICAT-POSIX:STAT {1004F20C93}> 
    [standard-object] 

Slots with :INSTANCE allocation: 
    DEV  = 2065 
    INO  = 7349974 
    MODE  = 33204 
    NLINK = 1 
    UID  = 1000 
    GID  = 1000 
    RDEV  = 0 
    SIZE  = 4304 
    BLKSIZE = 4096 
    BLOCKS = 16 
    ATIME = 1497626097 
    MTIME = 1497347216 
    CTIME = 1497347216 
; No value 

あなたはアクセスできますが、どうやらそれは私が探しているものを行う必要はありません。次の機能を持つ異なるスロット:

osicat-posix:stat-dev 
osicat-posix:stat-gid       
osicat-posix:stat-ino       
osicat-posix:stat-uid       
osicat-posix:stat-mode      
osicat-posix:stat-rdev      
osicat-posix:stat-size      
osicat-posix:stat-atime      
osicat-posix:stat-ctime      
osicat-posix:stat-mtime      
osicat-posix:stat-nlink      
osicat-posix:stat-blocks      
osicat-posix:stat-blksize      
+0

があります。しかしそれは医者にありますか?私はそれを見ることができません。 '(osicat :: stat my')は逆です:完了してもOKですが、'(osicat :: stat myfile) 'は存在しません。 "osicat :: stat is undefined"と入力してください:/ – Ehvince

+0

これは 'osicat-posix:stat'です。ありがとう! – Ehvince

+0

もう1人もdoc関連のPRを作るかもしれません... – Ehvince

関連する問題