ファイルシステム


*auto-update-per-device-directory*

Type: Variable
Package: lisp
ファイラで移動したときにドライブ毎のデフォルトのディレクトリについて制御します。 

  t   移動するたびに更新する
  nil set-perdevice-directoryで指定したディレクトリに固定する 

SeeAlso: set-per-device-directory
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

append-trail-slash

Type: Function
Arguments: append-trail-slash STRING
Package: editor
File: builtin.l
文字列の末尾に"/"がなければ"/"を追加します。 

使用例: 
  (append-trail-slash "ffjfj")
  => "ffjfj/"
  (append-trail-slash "ffjfj/")
  => "ffjfj/"

SeeAlso: remove-trail-slash
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

archiver-dll-config-dialog

Type: Function
Arguments: archiver-dll-config-dialog DLL &optional MODE
Package: editor
File: builtin.l
アーカイバの設定ダイアログを表示します。 

  DLL  : 設定するアーカイバを指定します。 
  MODE : (詳細不明) 

使用例: 
  (archiver-dll-config-dialog :unlha32)

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

archiver-dll-version

Type: Function
Arguments: archiver-dll-version DLL
Package: editor
File: builtin.l
アーカイバのバージョンを取得します。 

  DLL  : アーカイバを指定します。 

使用例: 
  (archiver-dll-version :unrar32)
  => "0.09"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

check-valid-pathname

Type: Function
Arguments: check-valid-pathname PATHNAME
Package: lisp
File: builtin.l
PATHNAMEが存在すればt、そうでなければnilを返します。 

使用例: 
  ;;; 存在するC:/xyzzy/と存在しないC:/xyzzzy/を比べてみる。 
  (check-valid-pathname "C:/xyzzy/")
  => t
  (check-valid-pathname "C:/xyzzzy/")
  => nil

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

compile-file-pathname

Type: Function
Arguments: compile-file-pathname PATHNAME
Package: lisp
File: builtin.l
xyzzy でバイトコンパイルした時の出力ファイル名を返します。 

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

copy-file

Type: Function
Arguments: copy-file FILE NEW-FILE &key :if-exists :copy-attributes :if-access-denied
Package: lisp
File: builtin.l
ファイルをコピーします。 

  FILE             : コピー元のファイル名を指定します。 
  NEW-FILE         : コピー先のファイル名を指定します。 
  :copy-attributes : コピーするときの属性を指定します。 
                     指定できる属性はget-file-infoを参照して下さい。 
  :if-exists       : ファイルが存在しない場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 
        :overwrite      強制的にファイル名の変更を試みます。 
  :if-access-denied : アクセスが拒否された場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 

使用例: 
  ;;; ローカルのautoexec.batを マシン名 VENUSの /work/autoexec.batにコピーする。 
  (copy-file "c:/autoexec.bat" "//VENUS/work/autoexec.bat"
             :if-exists :overwrite)

SeeAlso: rename-file
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

create-archive

Type: Function
Arguments: create-archive ARCHIVE-FILE FILES BASE-DIRECTORY
Package: editor
File: builtin.l
アーカイブを作成します。 

  ARCHIVE-FILE   : 作成/追加する書庫ファイル名を指定します。指定したファ
                   イルが存在すれば追加、なければ新規作成します。書庫フ 
                   ァイルを作成するディレクトリを指定する場合は、フルパ 
                   スで指定します。 
  FILES          : アーカイブするファイルのリストを指定します。フルパス
                   で指定する必要があります。 
  BASE-DIRECTORY : 基準となるディレクトリを指定します。 

使用例: 
  ;;; foo.lzh に c:/tmp/a.c, c:/tmp/b.c を追加します。 
  (create-archive "foo.lzh"
                  '("c:/tmp/a.c" "c:/tmp/b.c")
                  "c:/tmp")

SeeAlso: extract-archive
SeeAlso: delete-file-in-archive
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

create-directory

Type: Function
Arguments: create-directory DIRNAME &key :if-exists
Package: lisp
File: builtin.l
ディレクトリを作成します。 

  DIRNAME    : 作成対象のディレクトリ
  :if-exists : ディレクトリが存在していたときの動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 

戻り値は作成できたかどうかによります。 

  t   ディレクトリの作成に成功
  nil ディレクトリの作成に失敗 

使用例: 
  (create-directory "C:/xyzzy/testdir")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

create-shortcut

Type: Function
Arguments: create-shortcut SRC DEST &rest REST
Package: editor
File: files.l
ショートカットを作成します。 

  SRC :ショートカットが指すパスを指定します。 
  DEST:ショートカットを作成するパスを指定します。 
  DIR :ショートカットを作成するパスを指定します。 

使用例: 
  ;;; スタートメニューにショートカットを作成する。 
  (create-shortcut (merge-pathnames "xyzzy.exe" (si:system-root)) (get-special-folder-location :start-menu))
  => t
  (delete-file (merge-pathnames "xyzzy.exe.lnk" (get-special-folder-location :start-menu)))
  => t

  ;;; 送るメニューにxyzzyを登録する。 
  (create-shortcut (merge-pathnames "xyzzy.exe" (si:system-root)) (get-special-folder-location :send-to))
  => t
  (delete-file (merge-pathnames "xyzzy.exe.lnk" (get-special-folder-location :send-to)))
  => t

SeeAlso: resolve-shortcut
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

cwd

Type: Function
Arguments: cwd
Package: editor
File: builtin.l
xyzzy.exeの作業ディレクトリを返します。プロパティの作業フォルダ(S)の
ディレクトリが返されるのだと思います。 

使用例: 
  (cwd)
  =>"D:/WINNT/"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

default-directory

Type: Function
Arguments: default-directory &optional BUFFER
Package: editor
File: builtin.l
バッファが作業しているディレクトリを返します。 

  BUFFER : バッファを指定します。 
           指定がなければカレントバッファになります。 

そのバッファでfind-file するときに最初に表示されるディレクトリのことです。 
このディレクトリは M-x: cd や set-default-directoryで変更することができ 
ます。 

使用例: 
  ;;; デフォルトディレクトリを移動してみる。 
  (default-directory)
  => "C:/applications/xyzzy/site-lisp/"
  (cd "../..")
  => t
  (default-directory)
  => "C:/applications/"

SeeAlso: set-default-directory
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

delete-directory

Type: Function
Arguments: delete-directory DIRNAME &key :if-does-not-exist :if-access-denied
Package: lisp
File: builtin.l
ディレクトリを削除します。 

  DIRNAME            : 削除するディレクトリ名を指定します。 
  :if-does-not-exist : ディレクトリが存在しない場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 
  :if-access-denied  : アクセスが拒否された場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 
        :force          強制的に削除を試みます。 

削除できたかどうかで戻り値が変わります。 

  t   削除に成功
  nil 削除に失敗 

使用例: 
  (delete-directory "C:/xyzzy/testdir")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

delete-file

Type: Function
Arguments: delete-file FILE &key :if-does-not-exist :if-access-denied :recycle
Package: lisp
File: builtin.l
ファイルを削除します。 

  FILE               : 削除するファイル名を指定します。 
  :if-does-not-exist : ファイルが存在しない場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 
  :if-access-denied  : アクセスが拒否された場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 
        :force          強制的に削除を試みます。 

削除できたかどうかで戻り値が変わります。 

  t   削除に成功
  nil 削除に失敗 

使用例:  
  (delete-file "C:/xyzzy/test.txt")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

delete-file-in-archive

Type: Function
Arguments: delete-file-in-archive ARCHIVE-FILE &rest FILES
Package: editor
File: builtin.l
アーカイブから指定したファイルを削除します。 

  ARCHIVE-FILE : アーカイブを指定します。 
  FILES        : 削除するファイルを指定します。 

使用例: 
  ;;; c:/tmp/foo.lzh から xyz.c を削除します。 
  (delete-file-in-archive "c:/tmp/foo.lzh" "xyz.c")

SeeAlso: create-archive
SeeAlso: extract-archive
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

directory

Type: Function
Arguments: directory PATHNAME &key :absolute :recursive :wild :depth :file-only :show-dots :count :directory-only :callback :file-info
Package: lisp
File: builtin.l
対象ディレクトリ下のファイル名をリストで得ます。 

  PATHNAME        : 検索するディレクトリのパスです。 
  :absolute       : 検索結果をフルパスで取得します。 
  :recursive      : サブディレクトリも対象とするかを制御します。 
        t               サブディレクトリの中まで検索
        nil             サブディレクトリの中までは検索しない 
  :wild           : ワイルドカード指定です。リストでも可です。 
  :depth          : :recursive 指定するときの再帰の深さです。 
  :file-only      : ファイルしか検索しません。 
  :show-dots      : ディレクトリとして"./"と"../"を加えます。 
  :count          : 表示されるファイルの個数を制限します。 
  :directory-only : ディレクトリしか検索しません。 
  :callback       : 見つかったファイルを引数にして funcall します。 
                    funcall した結果をリストにして返します。 
  :file-info      : ファイルの属性を取得します。 
                    get-file-info で取得できるものと同じです。 

使用例: 
  ;;;  "../"は出したいけど、"./"を出したくない場合 
  (delete "./" (directory ... :show-dots t) :test #'string=)

  ;;; "C:/"の配下を一覧表示する。 
  (directory "C:/" :callback #'(lambda (x) (print x)))

  ;;; ファイル名のソート(大文字小文字区別有り) 
  (sort (directory ...) #'string<)

  ;;; ファイル名のソート(大文字小文字区別有り) 
  (sort (directory ...) #'string-lessp)

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

directory-namestring

Type: Function
Arguments: directory-namestring PATHNAME
Package: lisp
File: builtin.l
PATHNAMEのディレクトリ部分を返します。 

使用例:  
  (directory-namestring "C:/xyzzy/xyzzy.exe")
  => "C:/xyzzy/"
  (directory-namestring "~/test.txt")
  => "C:/HOME/"
  (directory-namestring "/usr/local/bin")
  => "C:/usr/local/"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

ed::find-file-internal

Type: Function
Arguments: find-file-internal FILENAME &optional NOWARN (KANJI-CODE nil SVAR) NEWLINE-CODE NOMSG
Package: editor
File: files.l
ファイルを開きます。find-fileはfind-file-internalを用いて実装されています。 
find-fileは複数のファイルを開く機能がありますが、一つのファイルを開くの
であれば、こちらの方が高速です。 

  FILENAME : ファイル名 

SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

eject-media

Type: Function
Arguments: eject-media DRIVE
Package: editor
File: builtin.l
DRIVEに指定したドライブをイジェクトします。 
DRIVEはキャラクタで指定します。 
使用例: 
  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"
  
  (eject-media (svref a 0)) ; イジェクト不可能なドライブ 
  =>指定されたデバイス名は無効です。 

  (eject-media #\P)
  =>t
(svref (default-directory) 0))

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

extract-archive

Type: Function
Arguments: extract-archive ARCHIVE-FILE TO-DIRECTORY &rest FILES
Package: editor
File: builtin.l
アーカイブを展開します。 

ARCHIVE-FILE : 展開するアーカイブを指定します。 
TO-DIRECTORY : 展開するディレクトリを指定します。 
FILES        : 展開するファイルを指定します。指定しない場合は、全てのフ 
               ァイルが展開されます。 

使用例: 
  ;;; d:/foo.lzh を c:/tmp に展開します。 
  (extract-archive "d:/foo.lzh" "c:/tmp")

SeeAlso: create-archive
SeeAlso: delete-file-in-archive
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-directory-p

Type: Function
Arguments: file-directory-p PATHNAME
Package: lisp
File: builtin.l
PATHNAMEがディレクトリならt、そうでなければnilを返します。 

使用例:  
  (file-directory-p "C:/xyzzy/")
  => t
  (file-directory-p "C:/xyzzy/xyzzy.exe")
  => nil
  (file-directory-p "~/")
  => t

SeeAlso: file-exist-p
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-executable-p

Type: Function
Arguments: file-executable-p PATHNAME
Package: lisp
File: builtin.l
注)何故か実行ファイルでも、tが返らない気がする。 
PATHNAMEが実行ファイルか否かを返します。 

  t    実行ファイルである。 
  nil  実行ファイルではない。 

SeeAlso: file-exist-p
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-exist-p

Type: Function
Arguments: file-exist-p PATHNAME
Package: lisp
File: builtin.l
PATHNAMEが存在すればt、そうでなければnilを返します。 

使用例:  
  (file-exist-p "C:/xyzzy/xyzzy.exe")
  => t
  (file-exist-p "~/")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-length

Type: Function
Arguments: file-length PATHNAME
Package: lisp
File: builtin.l
指定されたファイルの大きさをバイト単位で返します。 

  PATHNAME : ファイル名を指定します。 

使用例: 
  (file-length "C:/xyzzy/xyzzy.exe")
  => 977408

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-namestring

Type: Function
Arguments: file-namestring PATHNAME
Package: lisp
File: builtin.l
PATHNAMEのファイル名の部分を返します。 
  
使用例: 
  (file-namestring "C:/xyzzy/xyzzy.exe")
  => "xyzzy.exe"
  (file-namestring "C:/Windows/")
  => ""

須田さんの場合: 
  ;;; 須田さんは、こんなのを定義しているらしい。 
  (defun file-name-directory (filename)
    (directory-namestring filename))

  (defun file-name-nondirectory (filename)
    (file-namestring filename))

  (defun file-name-sans-versions (name)
    "Return FILENAME sans backup versions or strings.
  This is a separate procedure so your site-init or startup file can
  redefine it."
    (substring name 0
             (or (string-match "\\.~[0-9]+~\\'" name)
                 (string-match "~\\'" name)
                 (length name))))

SeeAlso: directory-namestring
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-newer-than-file-p

Type: Function
Arguments: file-newer-than-file-p FILE1 FILE2
Package: editor
File: builtin.l
ファイルの最終更新日を比較します。 
戻り値は以下のとおりです。 

  t   file1の方が新しい、もしくはfile2が無効。 
  nil file2の方が新しい、もしくはfile1が無効。 

SeeAlso: file-write-time
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-property

Type: Function
Arguments: file-property PATHNAME
Package: editor
File: builtin.l
PATHNAMEのファイルのプロパティを表示します。 
使用例: 
  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"

  (file-property a)
  =>t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-readable-p

Type: Function
Arguments: file-readable-p PATHNAME
Package: lisp
File: builtin.l
PATHNAMEが読み取り可能ならt、そうでなければnilを返します。 

使用例: 
  (file-readable-p "C:/xyzzy/xyzzy.exe")
  => t
  (file-readable-p "~/")
  => nil

SeeAlso: file-writable-p
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-writable-p

Type: Function
Arguments: file-writable-p PATHNAME
Package: lisp
File: builtin.l
PATHNAMEが書き込み可能ファイルならt、そうでなければnilを返します。 

使用例:  
  (file-writable-p "C:/xyzzy/xyzzy.exe")
  => t
  (file-writable-p "~/")
  => nil

SeeAlso: file-readable-p
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

file-write-time

Type: Function
Arguments: file-write-time FILENAME
Package: lisp
File: builtin.l
ファイルの最終更新日をユニバーサルタイム形式で返します。 

  FILENAME : ファイル名を指定します。 
             フルパスでなければ(default-directory)からの相対パスになります。 

使用例: 
  ;;; .xyzzyの最終更新日を返します。 
  (file-write-time ".xyzzy")
  => 3076147256

SeeAlso: set-file-write-time
SeeAlso: decode-universal-time
SeeAlso: format-date-string
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

find-file

Type: Function
Arguments: find-file FILENAME &optional ENCODING NOMSG
Package: editor
File: files.l
指定されたファイルを開きます。 

--- mule の説明 ---
Command: find-file filename

この関数は、 filename という名前のファイルを(ユーザーが)エディットできる
ようにします。 find-file-noselect を呼んでファイルに対するバッファを選択 
(訳 注: select)します。 

インタラクティブに呼ばれた場合、 filename を求め(ミニバッファに)プロンプ 
トを出します。

SeeAlso: find-other-file
SeeAlso: find-file-other-window
SeeAlso: ed::find-file-internal
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

find-file-in-archive

Type: Function
Arguments: find-file-in-archive ARCNAME FILENAME
Package: editor
File: files.l
アーカイブからファイルを展開して開きます。 

  ARCNAME  : アーカイブを指定します。 
  FILENAME : 展開するファイルを指定します。 

使用例: 
  (find-file-in-archive "C:/foo/bar.lzh" "hoge/fuga.txt")

SeeAlso: extract-archive
SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

find-file-other-window

Type: Function
Arguments: find-file-other-window FILENAME &optional ENCODING NOMSG
Package: editor
File: files.l
指定されたファイルを別のウィンドウで開きます。 

--- mule の説明 ---
Command: find-file-other-window filename

この関数は、 (別のウィンドウで)ファイル filename をエディットします。 2
つもしくはそれ以上のウィンドウが画面上に存在する場合、選択されていない(
訳注: non-selected)ウィンドウを用います。 1つしかウィンドウが存在しない 
場合、それを分割します。 nil を返します。 

インタラクティブに呼ばれた場合、 filename を求め(ミニバッファに)プロンプ 
トを出します。

SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

find-other-file

Type: Function
Arguments: find-other-file FILENAME &optional ENCODING NOMSG
Package: editor
File: files.l
現在のバッファを閉じて指定されたファイルを開きます。 

互換性: 
  muleにはなさそう。 

SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

format-drive

Type: Function
Arguments: format-drive &optional DRIVE QUICK
Package: editor
File: builtin.l
ドライブをフォーマットします。 

  DRIVE : ドライブを文字で指定します。 

使用例: 
  (format-drive #\a t)
  => nil

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

get-disk-usage

Type: Function
Arguments: get-disk-usage DIRECTORY &optional RECURSIVEP
Package: editor
File: builtin.l
指定されたディレクトリの容量を取得します。 

  DIRECTORY  : 情報を取得するディレクトリを指定します。 
  RECURSIVEP : サブディレクトリも再帰的にチェックするかを指定します。 

戻り値は多値で返します。 

  1 ブロックサイズ(バイト) 
  2 全ディスク容量(バイト) 
  3 空きディスク容量(バイト) 
  4 ブロック単位の合計(バイト) 
  5 ファイルサイズを単純に加算した合計(バイト) 
  6 調べたディレクトリの個数
  7 調べたファイルの個数

使用例: 
  (defun my-folder-size (my-dir)
    (interactive "Dfolder name: ")
    (let (my-dir-list (my-total-size  0))
      (setq my-dir-list (directory my-dir
                                   :wile "*.*"
                                   :absolute t
                                   :file-only t
                                   :recursive t
                                   :show-dots nil))
      (dolist (f my-dir-list)
        (setq my-total-size (+ my-total-size (file-length f))))
      (msgbox (format nil "フォルダの使用容量は、~d バイトです。"
                      my-total-size))))

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

get-file-attributes

Type: Function
Arguments: get-file-attributes PATHNAME
Package: editor
File: builtin.l
ファイルの属性を返します。ファイルサイズや最終更新日などの情報も一括して取 
得したい場合には、get-file-infoを使用しましょう。 

  PATHNAME : 属性を取得するファイル名を指定します。 

戻り値は以下の値の合計で表されます。 

  ed::*file-attribute-readonly*   : 読み取り専用
  ed::*file-attribute-hidden*     : 隠しファイル
  ed::*file-attribute-system*     : システムファイル
  ed::*file-attribute-directory*  : ディレクトリ
  ed::*file-attribute-archive*    : アーカイブ 
  ed::*file-attribute-compressed* : 圧縮

使用例: 
  ;;; c:\autoexec.batの属性を取得してみる。多分アーカイブになっているので
  ;;; ed::*file-attribute-archive*との論理積が0以外になる。 
  (get-file-attributes "c:/autoexec.bat")
  => 32
  (= (get-file-attributes "c:/autoexec.bat") ed::*file-attribute-archive*)
  => t

SeeAlso: get-file-info
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

get-file-info

Type: Function
Arguments: get-file-info PATHNAME
Package: editor
File: builtin.l
ファイルの属性をまとめて取得します。属性・最終更新日・サイズ・短い 
名前のリストの形式です。属性は以下の感じで。 
  ed::*file-attribute-readonly*
  ed::*file-attribute-hidden*
  ed::*file-attribute-system*
  ed::*file-attribute-directory*
  ed::*file-attribute-archive*
  ed::*file-attribute-compressed*

使用例: 
  (setq i (get-file-info (si:system-root)))
  => (16 3208385786 0 "XYZZY")
  (logand (car i) ed::*file-attribute-directory*)
  => 16
  (logand (car i) ed::*file-attribute-hidden*)
  => 0
  (format-date-string "%y/%m/%d %H:%M:%S" (cadr i))
  => "01/09/02 11:16:26"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

get-short-path-name

Type: Function
Arguments: get-short-path-name PATHNAME
Package: lisp
File: builtin.l
PATHNAMEの8.3形式でのパスを返します。 
使用例: 
  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"

  (get-short-path-name a)
  =>"C:/APPLIC~2/xyzzy/xyzzy.exe"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

insert-file

Type: Function
Arguments: insert-file FILENAME &optional ENCODING
Package: editor
File: files.l
指定されたファイルをカーソルの位置に読み込みます。 

--- mule の説明 ---
Command: insert-file filename

この関数は、ファイル filename の内容をカレントバッファのポイントの後に挿
入します。 filename が読み込み可能なファイルでない場合、エラーになります。 
これはインタラクティブに用いるためのもので insert-file-contents 以外のこ 
とは (ほとんど)何も行ないません。

SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

list-archive

Type: Function
Arguments: list-archive ARCHIVE-FILE &optional FILE-NAME-ONLY
Package: editor
File: builtin.l
アーカイブのファイル名一覧を取り出します。 

  ARCHIVE-FILE   : 一覧を取得するアーカイブを指定します。 
  FILE-NAME-ONLY : 戻り値の形式を指定します。 
        t   ファイル名(ディレクトリ名)のみを返します。 
        nil ファイル名(ディレクトリ名)、属性、サイズ、タイムスタンプを
            返します。 

使用例: 
  (list-archive "foo.lzh")

SeeAlso: create-archive
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

make-temp-file-name

Type: Function
Arguments: make-temp-file-name &optional PREFIX SUFFIX DIRECTORY DIRECTORY-P
Package: editor
File: builtin.l
一時作業用のファイルを作成しそのパスを返します。 
ファイルは即時に作成されます。同じようにディレクトリを作成することも可能です。 

  PREFIX      : 一時作業用のファイルの接頭子 
  SUFFIX      : 一時作業用のファイルの拡張子 
                指定が無ければ".tmp"となります。 
  DIRECTORY   : 一時作業用のファイルを作成するディレクトリ
                指定が無ければ環境変数TMPに作成されます。 
  DIRECTORY-P : ファイルではなくディレクトリを作成する場合 
        t       ディレクトリを作成します。 
        nil     ファイルを作成します。 

使用例: 
  ;;; C:\spoolに一時作業用ファイルを作成します。 
  (make-temp-file-name "_den" "tmp" "c:/spool")
  => "c:/spool/_denc0dc.tmp"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

merge-pathnames

Type: Function
Arguments: merge-pathnames PATHNAME &optional DEFAULTS
Package: lisp
File: builtin.l
パスとファイル名をくっつけます。 

  PATHNAME : ファイル名の部分を指定します。 
  DEFUALTS : パスの部分を指定します。 
             指定しないと(default-directory)のパスが使用されます。 

使用例: 
  ;;; "c:/foo"と"bar.l"をくっつける。 
  (merge-pathnames "bar.l" "c:/foo")
  => "c:/foo/bar.l"

  (merge-pathnames "bar.l" "c:/foo/") <--ディレクトリの末尾に/がつい 
  => "c:/foo/bar.l"                      ているかとか気にしなくていい。 

SeeAlso: file-namestring
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

path-equal

Type: Function
Arguments: path-equal PATHNAME1 PATHNAME2
Package: lisp
File: builtin.l
PATHNAME1とPATHNAME2が同じパスを指していればt、そうでなければnilを返します。 

使用例: 
  (path-equal "C:/Windows/" "c:/windows")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

pathname-device

Type: Function
Arguments: pathname-device PATHNAME
Package: lisp
File: builtin.l
PATHNAMEのドライブ名を返します。 
使用例: 
  (setq a "//SAMURAI/Applications/xyzzy/xyzzy.exe")
  => "//SAMURAI/Applications/xyzzy/xyzzy.exe"

  (pathname-device a)
  => nil

  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  => "C:/Applications/xyzzy/xyzzy.exe"

  (pathname-device a)
  "C"

SeeAlso: pathname-type
SeeAlso: pathname-name
SeeAlso: pathname-directory
SeeAlso: pathname-host
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

pathname-directory

Type: Function
Arguments: pathname-directory PATHNAME
Package: lisp
File: builtin.l
PATHNAMEのディレクトリ名を返します。各階層ごとの名前を要素とするリスト形
式で返されます。 
使用例: 
  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"

  (pathname-directory a)
  =>("Applications" "xyzzy")

SeeAlso: pathname-type
SeeAlso: pathname-name
SeeAlso: pathname-device
SeeAlso: pathname-host
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

pathname-host

Type: Function
Arguments: pathname-host PATHNAME
Package: lisp
File: builtin.l
PATHNAMEのホスト名を返します。 
使用例: 
  (setq a "//SAMURAI/Applications/xyzzy/xyzzy.exe")
  =>"//SAMURAI/Applications/xyzzy/xyzzy.exe"

  (pathname-host a)
  =>"SAMURAI"

  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"

  (pathname-host a)
  =>nil

SeeAlso: pathname-type
SeeAlso: pathname-name
SeeAlso: pathname-directory
SeeAlso: pathname-device
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

pathname-match-p

Type: Function
Arguments: pathname-match-p PATHNAME WILDNAME
Package: lisp
File: builtin.l
PATHNAME が WILDNAME で指定されたワイルドカードにマッチするかどうかを 
返します。 

  PATHNAME : 検査対象のパス文字列
  WILDNAME : ワイルドカード文字列
             先頭文字が | の場合は否定の意味となる。 
             *brackets-is-wildcard-character* の値が non-nil の場合は
             文字列中の [...] をワイルドカードと見なす。 

戻り値: 
  t    PATHNAME が WILDNAME にマッチする。 
  nil  PATHNAME が WILDNAME にマッチしない。 

使用例: 
  (setq p (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"

  (setq w (merge-pathnames "xyzzy.*" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.*"

  (wild-pathname-p p)
  =>nil

  (wild-pathname-p w)
  =>t

  (pathname-match-p p w)
  =>t

  (pathname-match-p p (concat "|" w))
  =>nil

  (setq w "*/xyzzy.ini")
  =>"*/xyzzy.ini"

  (pathname-match-p p w)
  =>nil

  (pathname-match-p p (concat "|" w))
  =>t

SeeAlso: wild-pathname-p
SeeAlso: *brackets-is-wildcard-character*
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

pathname-name

Type: Function
Arguments: pathname-name PATHNAME
Package: lisp
File: builtin.l
PATHNAMEのファイル名(拡張子無し)を返します。 
使用例: 
  (setq a (merge-pathnames "xyzzy.exe" (si:system-root)))
  =>"C:/Applications/xyzzy/xyzzy.exe"

  (pathname-name a)
  =>"xyzzy"

SeeAlso: pathname-type
SeeAlso: pathname-directory
SeeAlso: pathname-device
SeeAlso: pathname-host
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

pathname-type

Type: Function
Arguments: pathname-type PATHNAME
Package: lisp
File: builtin.l
ファイル名の拡張子を取り出します。拡張子がなければnilを返します。 

  PATHNAME : 拡張子を取り出すファイル名を指定します。 

使用例: 
  ;;; foo.lzh
  (pathname-type "foo.lzh" )
  =>"lzh"
  (pathname-type "foo/bar/zzz.txt")
  =>"txt"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

remove-trail-slash

Type: Function
Arguments: remove-trail-slash STRING
Package: editor
File: builtin.l
STRINGの末尾に"/"があれば削除した文字列を返します。 
使用例: 
  (remove-trail-slash "ffjfj")
  =>"ffjfj"

  (remove-trail-slash "ffjfj/")
  =>"ffjfj"

SeeAlso: append-trail-slash
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

rename-file

Type: Function
Arguments: rename-file FILE NEW-NAME &key :if-exists :if-access-denied
Package: lisp
File: builtin.l
ファイル名を変更します。 
  
  FILE              : 変更前のファイル名を指定します。 
  NEW-NAME          : 変更後のファイル名を指定します。 
  :if-exists        : ファイルが存在する場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 
        :overwrite      強制的にファイル名の変更を試みます。 
  :if-access-denied : アクセスが拒否された場合の動作を指定します。 
        :error          エラーを出力します。 
        :skip           エラーは出力せず、nilを返します。 

変更できたかどうかで戻り値が変わります。 

  t   変更に成功
  nil 変更に失敗 

使用例: 
  (rename-file "C:/xyzzy/test.txt" "C:/xyzzy/test2.txt")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

resolve-shortcut

Type: Function
Arguments: resolve-shortcut PATHNAME
Package: editor
File: builtin.l
ショートカットからファイル名を求めます。 

  PATHNAME : ショートカットを指定します。 

使用例: 
  (resolve-shortcut "d:/winnt/profiles/henmi2/personal/my documentsへのショートカット.lnk")
  => "G:/My Documents"

SeeAlso: create-shortcut
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

save-some-buffers

Type: Function
Arguments: save-some-buffers &optional VERBOSE (FN #'WRITE-FILE)
Package: editor
File: files.l
開いているバッファを保存します。 
  VERBOSE : non-nilの場合保存するファイルごとにダイアログを表示して確認します。 

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

set-default-directory

Type: Function
Arguments: set-default-directory DIRECTORY &optional BUFFER
Package: editor
File: builtin.l
バッファが作業しているディレクトリを変更します。 

  DIRECTORY : ディレクトリを指定します。 
  BUFFER    : バッファを指定します。 
              指定がなければカレントバッファになります。 

SeeAlso: default-directory
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

set-file-write-time

Type: Function
Arguments: set-file-write-time FILENAME UNIVERSAL-TIME
Package: lisp
File: builtin.l
ファイルの最終更新日を変更します。 

  FILENAME       : ファイル名を指定します。フルパスでなければ
                   (default-directory)からの相対パスになります。 
  UNIVERSAL-TIME : 最終更新日をユニバーサルタイム形式で指定します。 

SeeAlso: file-write-time
SeeAlso: decode-universal-time
SeeAlso: format-date-string
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

set-per-device-directory

Type: Function
Arguments: set-per-device-directory DIRECTORY
Package: lisp
File: builtin.l
ドライブ毎のデフォルトのディレクトリを設定します。ドライブ毎のデ 
フォルトのディレクトリは、ファイラ等で移動すると毎回更新されます。 
更新されたくない場合には、*auto-update-per-device-directory*をnil
に設定します。 

使用例: 
  (set-per-device-directory "D:/foo/bar")
  (set-per-device-directory "E:/bar/foo")

SeeAlso: *auto-update-per-device-directory*
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

special-file-p

Type: Function
Arguments: special-file-p PATHNAME
Package: lisp
File: builtin.l
PATHNAMEがデバイスファイル(CON, AUX, NUL, PRN, LPT1/2/3/4, COM1/2/3/4)か 
否かを返します。 
  t    デバイスファイルである。 
  nil  デバイスファイルでない。 

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

sub-directory-p

Type: Function
Arguments: sub-directory-p DIRECTORY PARENT
Package: lisp
File: builtin.l
DIRECTORYがPARENTのサブディレクトリならt、そうでなければnilを返します。 

使用例: 
  (sub-directory-p "c:/windows/system" "c:/windows")
  => t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

tail-f

Type: Function
Arguments: tail-f FILENAME
Package: editor
File: tail-f.l
tail コマンドの -f オプションのように、更新され続けるようなファイルを終 
端まで読み込み続けようとします。 

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

truename

Type: Function
Arguments: truename PATHNAME
Package: lisp
File: builtin.l
相対パスを絶対パスに変えます。 

  PATHNAME : 変換するパスを指定します。 

使用例: 
  ;;; 相対パス及び絶対パスを指定して変換する。 
  (truename ".")
  => "C:/applications/xyzzy"
  (truename "C:/applications/xyzzy/")
  => "C:/applications/xyzzy"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

user-config-path

Type: Function
Arguments: user-config-path
Package: editor
File: builtin.l
ユーザ設定を格納しているディレクトリを返します。 

ダイアログでの規定値等が格納されるディレクトリです 
使用例: 
  (user-config-path)
  =>"H:/xyzzy/usr/Administrator/w2k/"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

user-homedir-pathname

Type: Function
Arguments: user-homedir-pathname
Package: lisp
File: builtin.l
ユーザーのホームディレクトリを返します。 

find-fileしたときに"~/"で参照可能なディレクトリです。 
起動時に、このディレクトリに格納されている.xyzzyを読み込みます。 
同一PCを複数人で使用していたり、ネットワーク共有されたフォルダに
xyzzyを格納した場合には、ユーザ毎にホームディレクトリの設定して
.xyzzyを切り替えることができます。 

ユーザのホームディレクトリは、以下の順番で決定されます。 

  1)iniファイル内の[init]homeDir
  2)環境変数 XYZZYHOME
  3)環境変数 HOME
  4)環境変数 HOMEDRIVE + HOMEPATH
  5)iniファイル内の[init]logDir
  6)xyzzy.exeのpath

使用例: 
  (user-homedir-pathname)
  => "C:/HOME/"

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

valid-path-p

Type: Function
Arguments: valid-path-p PATHNAME
Package: lisp
File: builtin.l
パスが有効かどうかをチェックします。 

  PATHNAME : 有効かどうかをチェックするパス

ここで「有効なパス」というのは、最終的なファイルやディレクトリが存在する
ことを指すのではなく、途中の経路が存在することを指します。ファイルを指し 
示している場合には、そのファイル自体の有無は関係ありません。そのファイル
に至るディレクトリが全て存在していることが有効か否かに関わります。 

使用例: 
  (valid-path-p "foo/bar/zzz.txt")
  =>nil
  (valid-path-p "/autoexec.bat")
  =>t

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

write-region

Type: Function
Arguments: write-region FROM TO FILENAME &optional APPEND CHAR-ENCODING EOL-CODE
Package: editor
File: builtin.l
リージョンをファイルに書き込みます。 
APPEND が non nil なら追加書き込みをします。 

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

wrong-disk

Type: Misc
Package: lisp
注)どこにもみつからない? 

SeeAlso: wrong-disk-pathname
[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]

wrong-disk-pathname

Type: Function
Arguments: wrong-disk-pathname X
Package: lisp
注)どこにもみつからない? 

[ Intro | 目次 | 索引 | 目的別 | ファイルシステム ]