[Ample/All] 특정 디렉터리 하부에 있는 모든 파일 수집 (recursive)

Version 3

    Ample에서 제공하는 $$get_container_contents() 함수와 $file_exist() 함수를 응용하여 사용자에게 입력받은 디렉터리 아래를 모두 scan하도록 작성된 예제입니다.


    기본 함수만 사용하였으므로, Board Station의 어느 application에서도 실행될 수 있습니다.

    특히, 이 예제에서는 재귀함수(recursive function)를 사용하여 함수를 계속 반복 호출하면서 결과값을 누적시키는 방법이 사용되었습니다.


    $$get_container_contents() 함수는 dme_ref.pdf 에, $file_exist() 함수는 ample_ref.pdf 에 자세한 사용방법이 수록되어 있습니다.


    Board Station의 아무 Application이나 실행된 상태에서 F11키를 눌러 "dofile <파일의 위치>"를 실행하여 나타나는 입력창에 임의의 디렉터리(full_path)를 입력하면 transcript에 해당 디렉터리 하위의 모든 파일을 출력합니다.



    실행 예)

    //  Note: Found 18 files & objects in directory /cygdrive/c/WDIR/mydesign/pcb.

    //  catalogs (object:Pcb_catalogs) - /cygdrive/c/WDIR/mydesign/pcb/catalogs

    //  comps (object:Pcb_comps) - /cygdrive/c/WDIR/mydesign/pcb/comps

    //  gates (object:Pcb_gates) - /cygdrive/c/WDIR/mydesign/pcb/gates

    //  geoms (object:Pcb_geoms) - /cygdrive/c/WDIR/mydesign/pcb/geoms

    //  layers (object:Pcb_layers) - /cygdrive/c/WDIR/mydesign/pcb/layers

    //  nets (object:Pcb_nets) - /cygdrive/c/WDIR/mydesign/pcb/nets

    //  notes (object:Pcb_notes) - /cygdrive/c/WDIR/mydesign/pcb/notes

    //  pins (object:Pcb_pins) - /cygdrive/c/WDIR/mydesign/pcb/pins

    //  pkgconf (object:Pcb_pkgconf) - /cygdrive/c/WDIR/mydesign/pcb/pkgconf

    //  pkginst (object:Pcb_pkginst) - /cygdrive/c/WDIR/mydesign/pcb/pkginst

    //  pkgs (object:Pcb_pkgs) - /cygdrive/c/WDIR/mydesign/pcb/pkgs

    //  spares (object:Pcb_spares) - /cygdrive/c/WDIR/mydesign/pcb/spares

    //  tech (object:Pcb_tech) - /cygdrive/c/WDIR/mydesign/pcb/tech

    //  testpoints (object:Pcb_testpoints) - /cygdrive/c/WDIR/mydesign/pcb/testpoints

    //  traces (object:Pcb_traces) - /cygdrive/c/WDIR/mydesign/pcb/traces

    //  check_report (file) - /cygdrive/c/WDIR/mydesign/pcb/check/check_report

    //  bill_of_materials (file) - /cygdrive/c/WDIR/mydesign/pcb/mfg/bill_of_materials

    //  net_report (file) - /cygdrive/c/WDIR/mydesign/pcb/mfg/net_report




    // DISCLAIMER OF WARRANTY:  Unless otherwise agreed in writing,

    // Mentor Graphics software and associated files are provided "as is"

    // and without warranty.  Mentor Graphics has no obligation to support

    // or otherwise maintain software.  Mentor Graphics makes no warranties,

    // express or implied with respect to software including any warranty

    // of merchantability or fitness for a particular purpose.


    // LIMITATION OF LIABILITY: Mentor Graphics is not liable for any property

    // damage, personal injury, loss of profits, interruption of business, or for

    // any other special, consequential or incidental damages, however caused,

    // whether for breach of warranty, contract, tort (including negligence),

    // strict liability or otherwise. In no event shall Mentor Graphics'

    // liability exceed the amount paid for the product giving rise to the claim.