我的程序中调用FtpFindFirstFile或InternetFindNextFile,都只能取到文件名的第一个字母,而其他的ftp相关的api函数都没有问题。急,在线等!!!!FTPAPI.WIN32_FIND_DATA aa = new FTPtest.FTPAPI.WIN32_FIND_DATA();
int lngHINet = FTPAPI.FtpFindFirstFile(this.connectionHandle, "*.xml",ref aa,0, 0);
string strTemp = aa.cFileName;
int a = 1;
while(a != 0)
{
int a = FTPAPI.InternetFindNextFile(lngHINet,ref aa); strTemp = aa.cFileName;}WIN32_FIND_DATA的结构 [StructLayout(LayoutKind.Sequential)]
public struct WIN32_FIND_DATA
{
public UInt32 dwFileAttributes;
public FILETIME ftCreationTme;
public FILETIME ftLastAccessTime;
public FILETIME ftLastWriteTime;
public UInt32 nFileSizeHigh;
public UInt32 nFileSizeLow;
public UInt32 dwReserved0;
public UInt32 dwReserved1;
[MarshalAs( UnmanagedType.ByValTStr, SizeConst=256)] public string cFileName;
[MarshalAs( UnmanagedType.ByValTStr, SizeConst=14)] public string cAlternateFileName;
}
int lngHINet = FTPAPI.FtpFindFirstFile(this.connectionHandle, "*.xml",ref aa,0, 0);
string strTemp = aa.cFileName;
int a = 1;
while(a != 0)
{
int a = FTPAPI.InternetFindNextFile(lngHINet,ref aa); strTemp = aa.cFileName;}WIN32_FIND_DATA的结构 [StructLayout(LayoutKind.Sequential)]
public struct WIN32_FIND_DATA
{
public UInt32 dwFileAttributes;
public FILETIME ftCreationTme;
public FILETIME ftLastAccessTime;
public FILETIME ftLastWriteTime;
public UInt32 nFileSizeHigh;
public UInt32 nFileSizeLow;
public UInt32 dwReserved0;
public UInt32 dwReserved1;
[MarshalAs( UnmanagedType.ByValTStr, SizeConst=256)] public string cFileName;
[MarshalAs( UnmanagedType.ByValTStr, SizeConst=14)] public string cAlternateFileName;
}
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
public struct WIN32_FIND_DATA
结贴
C# FTP client, based on the WinInet.dll API
http://www.codeproject.com/cs/internet/c__ftp_client.asp一般的函数,里面都有声明不过对于.net程序来说,用socket类可能更好。