BASP21 FTP�I�u�W�F�N�g

BASP21 FTP�I�u�W�F�N�g�́AASP�� VBScript ��Visual Basic�AEXCEL VBA WSH(Windows Scripting Host)�Ȃǂ���g����t�@�C���]���v���g�R��(FTP)�R���|�[�l���g�ł��B


��Connect(svr,user,pass) : �R�l�N�V�������m��
��GetFile(remote,local[,type]) : �����[�g����t�@�C������M
��PutFile(local,remote[,type]) : �����[�g�փt�@�C���𑗐M
��PutToday(local,remote[,type]) : �����[�g�֖{���ύX�̃t�@�C���𑗐M
��DeleteFile(remote) : �����[�g�̃t�@�C�����폜
��RenameFile(old,new) : �����[�g�̃t�@�C�������l�[��
��GetDir(remote[,mode]) : �����[�g�̃t�@�C���ꗗ
��Command(cmd) : FTP�R�}���h���s
��GetReply() : FTP�R�}���h�̉����e�L�X�g
��OpenLog(file[,mode]) : ���O�t�@�C���I�[�v��
��CloseLog() : ���O�t�@�C���N���[�Y
��Close() : �ڑ��̃N���[�Y

�a�`�r�o�Q�P �e�s�o�I�u�W�F�N�g�̎g����

CreateObject���\�b�h��"basp21.FTP" �Ƃ������O�ŃI�u�W�F�N�g���쐬���܂��B
   Set ftp = Server.CreateObject("basp21.FTP")   ' ASP
   Set ftp = CreateObject("basp21.FTP")          ' VBA �� VB
   Set ftp = WScript.CreateObject("basp21.FTP")  ' WSH
�쐬�����I�u�W�F�N�g�Ń��\�b�h���ďo���܂��B
   �ϐ� = ftp.���\�b�h��(�p�����[�^)

�a�`�r�o�Q�P �e�s�o�I�u�W�F�N�g�̃��\�b�h�̐���

  1. Connect
    FTP�T�[�o�ɐڑ����܂��B
    rc = ftp.Connect(svr,user,pass)
    svr  [in]  : �ڑ����IP�A�h���X�܂��̓l�b�g���[�N�z�X�g���B
                 FTP�T�[�o��[:�|�[�g�ԍ�][:�^�C���A�E�g][�t�@�C�A�[�E�H�[��]�B":" �ŋ�؂��ă|�[�g�ԍ��i�ȗ��l21�j��
                 �^�C���A�E�g�l�i�b�P�ʁA�ȗ��l120)���w��ł��܂��B
                 �t�@�C�A�[�E�H�[���o�R�̏ꍇ�́A���̂悤�Ɏw�肵�܂��B
                 fhost fuser/fpass SITE
                 fhost fuser/fpass
                 fhost
                 fhost OPEN
    user [in]  : ���[�U���B
    pass [in]  : �p�X���[�h�B
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      0 : �ڑ��n�j
      1 - 5 : FTP �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
      10000�ȏ� : Winsock Error
            �T�^�I�ȃG���[�� 11001 �z�X�g�������‚���Ȃ� 
      -1 : �\�P�b�g�I�[�v���G���[ 
      -2 : �^�C���A�E�g
    ��F
    rc = ftp.Connect("ftp.microsoft.com:21:120","anonymous","who@who.com")
    rc = ftp.Connect("ftp.microsoft.com proxyhost user1/pass1","anonymous","who@who.com")
    
    
  2. GetFile
    �����[�g����t�@�C������M���܂��B�t�@�C�����́A����("*")���g���ĕ����t�@�C�����w��ł��܂��B
    rc = ftp.GetFile(remote,local[,type])
    remote [in]  : �����[�g�̃t�@�C�����B�f�B���N�g���̋�؂�� "/" ���g���܂��B
                   �����t�@�C���̎w��́A "a*.txt" �A"*"�A"*.html" �Ȃǂ̂悤�� "*" ���g���܂��B
                   "*" �́A�P�񂵂��g���܂���B�Ⴆ�΁A"*aa*.txt" �͎w��ł��܂���B
                   ��F a.html --- �J�����g�f�B���N�g����a.html
                        html/a.html --- html�f�B���N�g����a.html
                        html/*.html --- html�f�B���N�g���� .html �t�@�C�����ׂ�
                        html/*      --- html�f�B���N�g���̂��ׂẴt�@�C��
    local [in]   : ���[�J��(BASP21�������Ă���}�V��)�̃t�@�C�����܂��̓f�B���N�g�����B
                   �����t�@�C���̏ꍇ�A�f�B���N�g�������w�肵�Ă��������B
    type  [in]   : ��M����f�[�^�`�������̂悤�Ɏw�肵�܂��B
      0 : ASCII�i�ȗ��l)�Btxt/html �Ȃǂ̃e�L�X�g�t�@�C���̏ꍇ�B
      1 : �o�C�i���Bjpg/gif/exe/lzh/tar.gz �Ȃǂ̃o�C�i���t�@�C���̏ꍇ�B
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      1�ȏ� : ����I���B���M�����t�@�C�����B
      0 : �Y������t�@�C���Ȃ��B
      1,0�ȊO : �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
    ��F
    rc = ftp.GetFile("html/index.html","c:\temp\html")   ' �e�L�X�g�t�@�C���̎�M
    rc = ftp.GetFile("html/index.html","c:\temp\html\index2.html")   ' �e�L�X�g�t�@�C���̎�M�i�ʖ��ŕۑ��j
    rc = ftp.GetFile("html/*.html","c:\temp\html")   ' �e�L�X�g�t�@�C���̎�M
    rc = ftp.GetFile("html/images/*","c:\temp\image",1)  ' �o�C�i���t�@�C���̎�M
    
  3. PutFile
    �����[�g�փt�@�C���𑗐M���܂��B�����t�@�C���̑��M���ł��܂��B
    rc = ftp.PutFile(local,remote[,type])
    local [in]  : ���M����t�@�C�������t���p�X�Ŏw�肵�܂��B
                   �����t�@�C���̎w��́A "a*.txt" �A"*"�A"*.html" �Ȃǂ̂悤�� "*" ���g���܂��B
                   ��F c:\html\a.html --- html�f�B���N�g����a.html
                        c:\html\*.html --- html�f�B���N�g���� .html �t�@�C�����ׂ�
                        c:\html\*      --- html�f�B���N�g���̂��ׂẴt�@�C��
    remote [in]   : �����[�g�̃f�B���N�g�����B"" �́A�J�����g�f�B���N�g���B
    type   [in]   : ���M����f�[�^�`�������̂悤�Ɏw�肵�܂��B
      0 : ASCII�i�ȗ��l)�Btxt/html �Ȃǂ̃e�L�X�g�t�@�C���̏ꍇ�B
      1 : �o�C�i���Bjpg/gif/exe/lzh/tar.gz �Ȃǂ̃o�C�i���t�@�C���̏ꍇ�B
      2 : ASCII + �lj�(Append)���[�h�B
      3 : �o�C�i�� + �lj�(Append)���[�h�B
    
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      1�ȏ� : ����I���B���M�����t�@�C�����B
      0 : �Y������t�@�C���Ȃ��B
      1,0�ȊO : �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
    ��F
    rc = ftp.PutFile("c:\html\index.html","html")   ' �e�L�X�g�t�@�C���̑��M
    rc = ftp.PutFile("c:\html\*.html","html")       ' �e�L�X�g�t�@�C���̑��M
    rc = ftp.PutFile("c:\html\*.html","html",2)       ' �e�L�X�g�t�@�C����Append���[�h���M
    rc = ftp.PutFile("c:\html\images\*","html/images",1)   ' �o�C�i���t�@�C���̑��M
    
  4. PutToday
    �����[�g�֖{���ύX�����t�@�C���𑗐M���܂��B�ύX�����t�@�C���������M�������Ƃ��ɕ֗��B
    rc = ftp.PutToday(local,remote[,type])
    local [in]  : ���M����t�@�C�������t���p�X�Ŏw�肵�܂��B
                   �����t�@�C���̎w��́A "a*.txt" �A"*"�A"*.html" �Ȃǂ̂悤�� "*" ���g���܂��B
                   ��F c:\html\a.html --- html�f�B���N�g����a.html
                        c:\html\*.html --- html�f�B���N�g���� .html �t�@�C�����ׂ�
                        c:\html\*      --- html�f�B���N�g���̂��ׂẴt�@�C��
    remote [in]   : �����[�g�̃f�B���N�g�����B"" �́A�J�����g�f�B���N�g���B
    type   [in]   : ���M����f�[�^�`�������̂悤�Ɏw�肵�܂��B
      0 : ASCII�i�ȗ��l)�Btxt/html �Ȃǂ̃e�L�X�g�t�@�C���̏ꍇ�B
      1 : �o�C�i���Bjpg/gif/exe/lzh/tar.gz �Ȃǂ̃o�C�i���t�@�C���̏ꍇ�B
      2 : ASCII + �lj�(Append)���[�h�B
      3 : �o�C�i�� + �lj�(Append)���[�h�B
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      1�ȏ� : ����I���B���M�����t�@�C�����B
      0 : �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
    ��F
    rc = ftp.PutToday("c:\html\*.html","html")       ' �����ύX�����t�@�C���𑗐M
    
  5. DeleteFile
    �����[�g�̃t�@�C�����폜���܂��B�����t�@�C���̎w�肪�ł��܂��B
    rc = ftp.DeleteFile(remote)
    remote [in]  : �폜�������t�@�C�������w�肵�܂��B�f�B���N�g���̋�؂�� "/" ���g���܂��B
                   �����t�@�C���̎w��́A "a*.txt" �A"*"�A"*.html" �Ȃǂ̂悤�� "*" ���g���܂��B
                   "*" �́A�P�񂵂��g���܂���B�Ⴆ�΁A"*aa*.txt" �͎w��ł��܂���B
                   ��F a.html --- �J�����g�f�B���N�g����a.html
                        html/a.html --- html�f�B���N�g����a.html
                        html/*.html --- html�f�B���N�g���� .html �t�@�C�����ׂ�
                        html/*      --- html�f�B���N�g���̂��ׂẴt�@�C��
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      1�ȏ� : ����I���B�폜�����t�@�C�����B
      0 : �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
    ��F
    rc =ftp.DeleteFile("html/*")    ' html�f�B���N�g���̂��ׂč폜
    
    
  6. RenameFile
    �����[�g�̃t�@�C�������l�[�����܂��B
    rc = ftp.RenameFile(old,new)
    old [in]  : �ύX�O�̃t�@�C�����B
    new [in]  : �ύX��̃t�@�C�����B
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      2 : �ύX�n�j
      2�ȊO : �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
    ��F
    rc = ftp.RenameFile("html/index.html","html/top.html")   ' index.html -> top.html
    
    
  7. GetDir
    �����[�g�̃t�@�C���ꗗ��z��ŕԂ��܂��B
    farray = ftp.GetDir(remote[,mode])
    remote [in]  : �����[�g�̃f�B���N�g�����B""�́A�J�����g�f�B���N�g���B
    mode   [in]  : �t�@�C���ꗗ�̎�ށB
      0 : �ȗ��l�B�t�@�C�����̂݁B
      1 : �f�B���N�g�����̂݁B
      2 : LIST�t�H�[�}�b�g�BLIST�R�}���h�̌��ʂ�Ԃ��܂��B�ڍׂȃf�B���N�g���̃��X�g�B
      3 : NLST�t�H�[�}�b�g�BNLST�R�}���h�̌��ʂ�Ԃ��܂��B���O�݂̂̃��X�g�B
    farray [out]  : ���ʂ��z��ŕԂ���܂��B�G���[��G���g�����Ȃ��Ƃ��́A�z���Ԃ��܂���B
    ��F
    rc = ftp.GetDir("")   ' �J�����g�f�B���N�g���̃t�@�C���ꗗ
    
  8. Command
    FTP�R�}���h�����s���܂��BSTOR/RETR/LIST/NLST�Ȃǂ̃f�[�^�]���𔺂��R�}���h�́A���s�ł��܂���B
    rc = ftp.Command(cmd)
    cmd [in]  : �R�}���h���ƃp�����[�^�B���s�ł���R�}���h�́AFTP�T�[�o�ɂ���ĈقȂ�܂��B
                ���̂悤�ȃR�}���h��FTP�v���g�R���ł͒�`����Ă��܂��B
                ��HELP [�R�}���h]  --- �T�[�o�̎����󋵂Ȃǂ�\���B
                ��CWD �p�X��  --- �f�B���N�g���ύX�B
                ��CDUP        --- �e�̃f�B���N�g���Ɉړ��B
                ��RMD �p�X��  --- �f�B���N�g���̍폜�B
                ��MKD �p�X��  --- �f�B���N�g���̍쐬�B
                ��PMD         --- ��ƃf�B���N�g�����̕\���B
                ��SITE ������ --- �t�@�C���̑����ύX�Ȃǂ̃T�[�r�X�̎��s�BHELP SITE �R�}���h�ŃT�[�r�X�ꗗ��\���ł��܂��B
                ��SYST        --- �T�[�o��OS�̎�ނ�\���B
                ��pasv        --- BASP21 �g���Bpassive ���[�h�ňȍ~�̏��������s�B
    
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      2 : �n�j�B���s���ʂ̃e�L�X�g�́AGetReply���\�b�h�ŋ��߂܂��B
      -1 : STOR/RETR/LIST/NLST�Ȃǂ̃f�[�^�]���𔺂��R�}���h�́A���s�ł��܂���B
      �ȊO : �G���[�BGetReply���\�b�h��FTP�����e�L�X�g�ŏڍׂ𒲂ׂĂ��������B
    ��F
    ' passive���[�h�ɂ���
    ftp.Command("pasv")  ' ��x�ďo���� OK
    
    rc = ftp.Command("HELP")   ' HELP�R�}���h
    help = ftp.GetReply()   ' �R�}���h�̉���
    help�̓��e�i�T�[�o�ɂ���ĈقȂ�܂��j�F
    214-The following commands are recognized (* =>'s unimplemented).
       USER    PORT    STOR    MSAM*   RNTO    NLST    MKD     CDUP    PBSZ*
       PASS    PASV    APPE    MRSQ*   ABOR    SITE    XMKD    XCUP    PROT*
       ACCT*   TYPE    MLFL*   MRCP*   DELE    SYST    RMD     STOU    SIZE 
       SMNT*   STRU    MAIL*   ALLO    CWD     STAT    XRMD    AUTH*   MDTM 
       REIN*   MODE    MSND*   REST    XCWD    HELP    PWD     ADAT*
       QUIT    RETR    MSOM*   RNFR    LIST    NOOP    XPWD    CCC*
    214 Direct comments to ftp-bugs@server1.
    
    rc = ftp.Command("HELP SITE")   ' HELP SITE�R�}���h
    helpsite = ftp.GetReply()   ' �R�}���h�̉���
    helpsite�̓��e�i�T�[�o�ɂ���ĈقȂ�܂��j�F
    214-The following SITE commands are recognized (* =>'s unimplemented).
       UMASK   IDLE    CHMOD   HELP 
    214 Direct comments to ftp-bugs@server1.
    
    rc = ftp.Command("HELP SITE CHMOD")   ' HELP SITE CHMOD�R�}���h
    helpchmod = ftp.GetReply()   ' �R�}���h�̉���
    helpchmod�̓��e�i�T�[�o�ɂ���ĈقȂ�܂��j�F
    214 Syntax: SITE CHMOD  mode  file-name
    
    
    ���ӁFOS �t����FTP�R�}���h�Ƃ͈قȂ�܂��B
    quote �R�}���h�́ASITE �R�}���h�ɑΉ����܂��B
    
    
    
  9. GetReply
    FTP�R�}���h�̉����e�L�X�g������܂��B�G���[�̏ڍׂ�Command���\�b�h�̎��s���ʂ� ����܂��B
    text = ftp.GetReply()
    text [out]  : �����e�L�X�g��������ŕԂ���܂��B�����s�ɓn��ꍇ�ACRLF���܂܂�܂��B
    ��F
    text = ftp.GetReplay()
    
    
  10. OpenLog
    ���O�t�@�C�����I�[�v�����܂��BFTP�T�[�o�Ƃ�FTP�R�}���h�̂��Ƃ���e�L�X�g�t�@�C���� �ۑ����܂��B
    rc = ftp.OpenLog(file[,mode])
    file [in]  : ���O�t�@�C�����t���p�X�Ŏw�肵�܂��B
    mode [in]  : �V�K�ɍ쐬����ꍇ 0 �i�ȗ��l�j���A�lj�����ꍇ�́A 1 ���w�肵�܂��B
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      0 : �n�j
      0�ȊO : �G���[�B
    ��F
    rc = ftp.OpenLog("c:\ftplog.txt",1)   ' �lj����[�h�ŃI�[�v��
    
    
  11. CloseLog
    ���O�t�@�C�����N���[�Y���܂��B
    rc = ftp.CloseLog()
    rc [out]  : ���ʃR�[�h�������ŕԂ���܂��B
      0 : �n�j
    ��F
    rc = ftp.CloseLog()
    
    
  12. Close
    �ڑ���ؒf���܂��B
    ��F
    ftp.Close
    
    

�T���v��

�����[�g�iMicrosoft FTP�T�[�o�j����t�@�C������M���܂��B
��Visual Basic
Private Sub Form_Load() Dim ftp As Object, rc As Long, v As Variant, v2 As Variant Dim ctr As Long Set ftp = CreateObject("basp21.FTP") ftp.OpenLog "c:\temp\log.txt" rc = ftp.Connect("ftp.microsoft.com", "anonymous", "") If rc = 0 Then v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' �f�B���N�g���ꗗ(�ڍ�) If IsArray(v) Then For Each v2 In v Debug.Print v2 Next End If v = ftp.GetDir("bussys/winnt/winnt-public") ' �f�B���N�g���ꗗ(�t�@�C�����̂�) If IsArray(v) Then For Each v2 In v Debug.Print v2 Next End If rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") '�t�@�C����M End If End End Sub ��WSH
set bobj=createobject("basp21") set ftp=createobject("basp21.FTP") Set WshShell = Wscript.CreateObject("Wscript.Shell") WshShell.Run ("notepad") ftp.OpenLog "c:\temp\log.txt" rc = ftp.Connect("ftp.microsoft.com", "anonymous", "") If rc = 0 Then ' passive���[�h�ɂ��� ftp.Command("pasv") ' ��x�ďo���� OK v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' �f�B���N�g���ꗗ(�ڍ�) bobj.Debug v v = ftp.GetDir("bussys/winnt/winnt-public") ' �f�B���N�g���ꗗ(�t�@�C���̂�) bobj.Debug v rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") '�t�@�C����M End If

FTP�v���g�R���ɂ‚���

FTP�v���g�R���̏ڍׂ́A���̃T�C�g��RFC 959/1123���{��ł��Q�l�ɂȂ�܂��B
�a�t�a�t�̃y�[�W

babaq�t���[�\�t�g�̂��g�p��̒���

���v���O�������g���Ĕ����������Q�Ɋւ��ẮA��؂̐ӔC�𕉂��܂���B
���g�p�A�z�z�ɐ����͂���܂���B���R�ɂ��g�����������B
������̕ۏ؂͂���܂���B
��������m�F�����n�r�́AWindows NT 4.0 ��Windows 95/98�݂̂ł��B

Home


Copyright 1999 Tatsuo Baba,All rights reserved.