Vla-getremotefile

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月24日 (日) 00:06時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-getremotefile ''vla-object'' ''URL'' ''LocalFile'' ''IgnoreCache'' ) ; 機能 : URL で指定されたファイルをダウンロードす...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-getremotefile vla-object URL LocalFile IgnoreCache )


機能
URL で指定されたファイルをダウンロードする。


引数
  • vla-object … Utility の VLAオブジェクト
  • URL … ダウンロードするファイルの URL。
  • LocalFile … 指定した URL のファイル。
  • IgnoreCache … ブール型
  • :vlax-True : このセッションでファイルが既に転送済みであってもダウンロードする。
  • :vlax-False : このセッションでファイルが既に転送済みの場合は、ダウンロードしない。


戻り値
nil


  • MEMO : 現在または以前のセッション(キャッシュ)に、既にダウンロードしたファイルのリストがある場合、転送の重複を避け、ローカルで使用可能なファイルのコピーを作るのに有効。IgnoreCache パラメータを True に設定することにより、明示的にダウンロードを強制することができる。この場合、キャッシュは完全に無視される。
  • セキュア URL にアクセスするとき、パスワードの入力を求めるダイアログ ボックスが表示される。このときに、メッセージ ボックスも表示される(ブラウザでこの動作をオフにしていない場合)。
  • ファイルをダウンロードするときに内部処理用のテンポラリ ファイルが作成される。このテンポラリ ファイルにはアクセスしないこと。このファイル内の情報は、CAD セッションが終了する時点で削除される。


サンプル
(vl-load-com)
(defun c:Example_GetRemoteFile()
    ;; ダウンロードする URL をユーザーに入力を求めると、適切な URL が入力されたことを検証するサンプル。
    ;; ダウンロードした後の例はダウンロードした図面に関する情報を提供する。
    ;; 
    ;; * 注: 終わったらダウンロードしたファイルを削除。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    (setq Utility (vla-get-Utility doc))   ;; Connect to Utility object
    
    ;; ダウンロードする URL をユーザーに要求。
    (setq URL (vla-GetString Utility :vlax-false "\nダウンロードしたいファイルの完全な URL を入力してね : "))
  
    (if (/= URL "")
      (progn
         (if (= (vla-IsURL Utility URL) :vlax-false)
             (alert "入力した URL は無効です。構文が有効な URL であることを確認。")
             (progn
               ;; ダウンロード URL
               (vla-GetRemoteFile Utility URL 'DestFile :vlax-true)
            
               ;; ダウンロードしたファイル情報を表示。
               (alert (strcat URL " をダウンロード : " DestFile "\n"))

               ;; IsRemoteFile を使用すると、URL からダウンロードされたかどうかを確認する。
               ;; ダウンロードした URL が表示された場合は、
               ;;
               ;; *note : IsRemoteFile が返す結果が既に知られているので、ファイルがダウンロード
               ;;         されただけこのメソッドの使用方法を知っていることが重要です。
               (if (= (vla-IsRemoteFile Utility DestFile URL) :vlax-true)
                   (alert (strcat "file: " DestFile " をダウンロードしました。: " URL))
                   (alert (strcat "file: " DestFile " はダウンロードしたファイルではありません。"))
               )
                )
         )
       )
    )
)

関連事項