需要打开EXECL 打开 ftp://10.172.1.114上某个TEXT文档 ,先判断该文件是否为空,
如果不为空就打开该文件。
我的判断语句为:
1.path=ftp://10.172.1.114/delete/lbfs01.nbpb.com/Z/LCD/4622/T56BW/T56BW076/T56BW076BD09.txt
aa=dir(path)
运行时出错
2.Set fs = CreateObject("Scripting.FileSystemObject", path)
    aa = fs.FileExists(path)
运行是不管文件存在。总是返回 false.
请教高手,为什么会这样?该怎么写啊?
请教高手。最好附上代码,另外还有打开该TEXT的代码啊。。谢谢了我只有这么多分了。

解决方案 »

  1.   

    excel能直接访问ftp啊?
    ftp有没有用户名和密码啊。
      

  2.   

    ?FileLen("c:\b.xls") '空文件是15872
    加一个值后变成 13824 了。。搞不懂为什么
    FileLen 函数
          返回一个 Long,代表一个文件的长度,单位是字节。语法FileLen(pathname)必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。说明当调用 FileLen 函数时,如果所指定的文件已经打开,则返回的值是这个文件在打开前的大小。注意 若要取得一个打开文件的长度大小,使用 LOF 函数。
      

  3.   

    賬號:nbpb\lcdft
    密碼:lcd
    高手都到那去啦》???急哦。。
      

  4.   

    ftp://lcdft:[email protected]/delete/lbfs01.nbpb.com/Z/LCD/4622/T56BW/T56BW076/T56BW076BD09.txt 
    试试。
    其它的偶不懂。
      

  5.   

    fso好像不支持ftp吧,只能支持网络共享;
    //10.172.1.114/delete/lbfs01.nbpb.com/Z/LCD/4622/T56BW/T56BW076/T56BW076BD09.txt 
      

  6.   

    如果要ftp,可以先用inet下载,再用fso打开。
      

  7.   

    楼上的。能不能说具体点最好有代码 啊。。
    看来没有什么好的办法了..
    我在网上找到了一段代码,但是仍然编译不过啊。郁闷
    WIN32_FIND_DATA无定义之类的
    Sub test()Dim sFile As String
    sFile = "ftp://xxxx:[email protected].*.*/e:/200804/11/0000.xls"    Dim hFind As Long
        Dim hConnection As Long
        Dim nLastError As Long
        Dim pData As WIN32_FIND_DATA    
        hFind = FtpFindFirstFile(hConnection, sFile, pData, 0, 0)
        nLastError = Err.LastDllError
        If hFind = 0 Then
            If (nLastError = ERROR_NO_MORE_FILES) Then
                Cells(1, 1).Value = -1 ' File not found
            Else
                Cells(1, 1).Value = -2  ' Other error
            End If
            
        End If
        
        InternetCloseHandle (hFind)
      

  8.   

    通用里面加个:Public Type WIN32_FIND_DATA
            dwFileAttributes As Long
            ftCreationTime As FILETIME
            ftLastAccessTime As FILETIME
            ftLastWriteTime As FILETIME
            nFileSizeHigh As Long
            nFileSizeLow As Long
            dwReserved0 As Long
            dwReserved1 As Long
            cFileName As String * MAX_PATH
            cAlternate As String * 14
    End Type
      

  9.   

    Private Type WIN32_FIND_DATA
            dwFileAttributes As Long
            ftCreationTime As FILETIME
            ftLastAccessTime As FILETIME
            ftLastWriteTime As FILETIME
            nFileSizeHigh As Long
            nFileSizeLow As Long
            dwReserved0 As Long
            dwReserved1 As Long
            cFileName As String * MAX_PATH
            cAlternate As String * 14
    End Type
      

  10.   

    Option ExplicitPublic Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
    (ByVal sAgent As String, ByVal LAccessType As Long, ByVal sProxyName As String, _
    ByVal SProxyBypass As String, ByVal lFlags As Long) As LongPublic Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _
    (ByVal hInternetSession As Long, ByVal sServerName As String, _
    ByVal nServerPort As Integer, ByVal sUsername As String, _
    ByVal sPassword As String, ByVal lService As Long, _
    ByVal lFlags As Long, ByVal lContext As Long) As LongPublic Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
    (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
    ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
    ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As BooleanPublic Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _
    (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
    ByVal lpszRemoteFile As String, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As BooleanPublic Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" _
      (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean
     
    Public Declare Function FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" _
      (ByVal hFtpSession As Long, ByVal lpszExsiting As String, ByVal lpszNew As String) As Boolean
     
    Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPublic Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _
       (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
        lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, _
        ByVal dwContent As Long) As Long
       
    Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _
    (ByVal hFind As Long, lpvFndData As WIN32_FIND_DATA) As LongPublic Type FILETIME
      dwLowDateTime As Long
      dwHighDateTime As Long
    End Type
    Public Type WIN32_FIND_DATA
       dwFilAttributes As Long
       ftCreationTime As FILETIME
       ftLastAccessTime As FILETIME
       ftLastWriteTime As FILETIME
       nFileSizeHigh As Long
       nFileSizeLow As Long
       dwReserved0 As Long
       dwReserved1 As Long
       cFileName As String * 260
       cAlternate As String * 14
    End Type 
    Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
            "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
    Type OPENFILENAME
         lStructSize As Long
         hwndOwner As Long
         hInstance As Long
         lpstrFilter As String
         lpstrCustomFilter As String
         nMaxCustFilter As Long
         nFilterIndex As Long
         lpstrFile As String
         nMaxFile As Long
         lpstrFileTitle As String
         nMaxFileTitle As Long
         lpstrInitialDir As String
         lpstrTitle As String
         flags As Long
         nFileOffset As Integer
         nFileExtension As Integer
         lpstrDefExt As String
         lCustData As Long
         lpfnHook As Long
         lpTemplateName As String
    End Type
    Private Sub Command1_Click()
    lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
       vbNullString, vbNullString, 0&)
    If lnginet Then
      lnginetconn = InternetConnect(lnginet, "ip地址", 0, _
            "用户名", "密码", 1, 0, 0)
      If lnginetconn Then
          blnRC = FtpGetFile(lnginetconn, "website/address.asp", "c:\address.asp", 0, 0, 1, 0)
          If blnRC Then
            MsgBox "download ok!!!"
          End If
          InternetCloseHandle lnginetconn
          InternetCloseHandle lnginet
          MsgBox "close ok!!!"
      Else
         MsgBox "can't connect"
      End If
    Else
         MsgBox "ftp wrong"
    End If
    End SubPrivate Sub Command2_Click()
    Dim pData As WIN32_FIND_DATA
    Dim lngHINet As Long
    Dim intError As Integer
    Dim strTemp As String
    Dim blnRC As Boolean
    pData.cFileName = String(260, 0)
    lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
       vbNullString, vbNullString, 0&)
    If lnginet Then
      lnginetconn = InternetConnect(lnginet, "IP地址", 0, _
            "用户名", "密码", 1, 0, 0)
       If lnginetconn Then
       lngHINet = FtpFindFirstFile(lnginetconn, "*.*", pData, 0, 0)
       strTemp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)
       Do
          pData.cFileName = String(260, 0)
          blnRC = InternetFindNextFile(lngHINet, pData)
          If Not blnRC Then
              Exit Do
          Else
             strTemp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)
          End If
         
       Loop
       Text1.Text = strTemp
      End If
      End If
       InternetCloseHandle lngHINet
      
       InternetCloseHandle lnginetconn
          InternetCloseHandle lnginet
      
      
    End Sub
      

  11.   

    Private   Declare   Function   FtpFindFirstFile   Lib   "wininet.dll"   Alias   "FtpFindFirstFileA"   _   
      (ByVal   hFtpSession   As   Long,   ByVal   lpszSearchFile   As   String,   _   
                  lpFindFileData   As   WIN32_FIND_DATA,   ByVal   dwFlags   As   Long,   ByVal   dwContent   As   Long)   As   Long   
      

  12.   

    为什么要用Excel 读 TXT?? Excel读TXT是要经过转换的!上面的aa是什么?aa=dir(path)???
      

  13.   


    path表示路径,如果该文件不存在,aa的值为0。
      

  14.   


    我知道Path是路径 我的意思是aa是什么??是什么变量? Boolean还是String什么的?不知道在VBA里
    你这样写会返回什么,但是vb里这样写返回的是Path的值 而不是返回Fale or True值!而且再重复一次Excel读TXT是要转换的!
      

  15.   

    使用winsock。先登录,再读写文件。
      

  16.   

    dir 不支持网络文件。dir 是通过本地文件系统来运作的。