public void RemoveFile(string fileName) { if (WININET.FtpDeleteFile(_hConnect, fileName) == 0) { Error(); } }
public void RenameFile(string existingFile, string newFile) { if (WININET.FtpRenameFile(_hConnect, existingFile, newFile) == 0) { Error(); } }
public void RemoveDirectory(string directory) { if (WININET.FtpRemoveDirectory(_hConnect, directory) == 0) { Error(); } }
public void PutFile(string localFile, string remoteFile) { if (WININET.FtpPutFile(_hConnect, localFile, remoteFile, 2, IntPtr.Zero) == 0) { Error(); } }
public void CreateDirectory(string path) { if (WININET.FtpCreateDirectory(_hConnect, path) == 0) { Error(); } }
public void SetCurrentDirectory(string directory) { if (WININET.FtpSetCurrentDirectory(_hConnect, directory) == 0) { Error(); } }
public void Close() { WININET.InternetCloseHandle(_hConnect); _hConnect = IntPtr.Zero; WININET.InternetCloseHandle(_hInternet); _hInternet = IntPtr.Zero; }
public string SendCommand(string cmd) { var ftpCommand = default(IntPtr); string a; var num = (a = cmd) == null || !(a == "PASV") ? WININET.FtpCommand(_hConnect, false, 1, cmd, IntPtr.Zero, ref ftpCommand) : WININET.FtpCommand(_hConnect, false, 1, cmd, IntPtr.Zero, ref ftpCommand); var num2 = 8192; if (num == 0) { Error(); } else if (ftpCommand != IntPtr.Zero) { var stringBuilder = new StringBuilder(num2); var bytesRead = 0; do { num = WININET.InternetReadFile(ftpCommand, stringBuilder, num2, ref bytesRead); } while (num == 1 && bytesRead > 1); return(stringBuilder.ToString()); } return(""); }
public void GetFile(string remoteFile, string localFile, bool failIfExists) { if (WININET.FtpGetFile(_hConnect, remoteFile, localFile, failIfExists, 128, 2, IntPtr.Zero) == 0) { Error(); } }
private string InternetLastResponseInfo(ref int code) { var bufferLength = 8192; var stringBuilder = new StringBuilder(bufferLength); WININET.InternetGetLastResponseInfo(ref code, stringBuilder, ref bufferLength); return(stringBuilder.ToString()); }
public void Dispose() { if (_hConnect != IntPtr.Zero) { WININET.InternetCloseHandle(_hConnect); } if (_hInternet != IntPtr.Zero) { WININET.InternetCloseHandle(_hInternet); } }
public void Open() { if (string.IsNullOrEmpty(Host)) { throw new ArgumentNullException("Host"); } _hInternet = WININET.InternetOpen(Environment.UserName, 0, null, null, 4); if (_hInternet == IntPtr.Zero) { Error(); } }
public string GetCurrentDirectory() { var dwCurrentDirectory = 261; var stringBuilder = new StringBuilder(dwCurrentDirectory); if (WININET.FtpGetCurrentDirectory(_hConnect, stringBuilder, ref dwCurrentDirectory) == 0) { Error(); return(null); } return(stringBuilder.ToString()); }
public void Login(string username, string password) { if (username == null) { throw new ArgumentNullException("username"); } if (password == null) { throw new ArgumentNullException("password"); } _hConnect = WININET.InternetConnect(_hInternet, Host, Port, username, password, 1, 134217728, IntPtr.Zero); if (_hConnect == IntPtr.Zero) { Error(); } }
public bool FileExists(string path) { var findFileData = default(WINAPI.WIN32_FIND_DATA); var intPtr = WININET.FtpFindFirstFile(_hConnect, path, ref findFileData, 67108864, IntPtr.Zero); try { if (intPtr == IntPtr.Zero) { return(false); } return(true); } finally { if (intPtr != IntPtr.Zero) { WININET.InternetCloseHandle(intPtr); } } }
public FtpDirectoryInfo[] GetDirectories(string path) { var findFileData = default(WINAPI.WIN32_FIND_DATA); var intPtr = WININET.FtpFindFirstFile(_hConnect, path, ref findFileData, 67108864, IntPtr.Zero); try { var list = new List <FtpDirectoryInfo>(); if (intPtr == IntPtr.Zero) { if (Marshal.GetLastWin32Error() == 18) { return(list.ToArray()); } Error(); return(list.ToArray()); } if ((findFileData.dfFileAttributes & 0x10) == 16) { var text = new string(findFileData.fileName); var trimChars = new char[1]; var ftpDirectoryInfo = new FtpDirectoryInfo(this, text.TrimEnd(trimChars)); ftpDirectoryInfo.LastAccessTime = findFileData.ftLastAccessTime.ToDateTime(); ftpDirectoryInfo.LastWriteTime = findFileData.ftLastWriteTime.ToDateTime(); ftpDirectoryInfo.CreationTime = findFileData.ftCreationTime.ToDateTime(); ftpDirectoryInfo.Attributes = (FileAttributes)findFileData.dfFileAttributes; list.Add(ftpDirectoryInfo); } findFileData = default; while (WININET.InternetFindNextFile(intPtr, ref findFileData) != 0) { if ((findFileData.dfFileAttributes & 0x10) == 16) { var text2 = new string(findFileData.fileName); var trimChars2 = new char[1]; var ftpDirectoryInfo2 = new FtpDirectoryInfo(this, text2.TrimEnd(trimChars2)); ftpDirectoryInfo2.LastAccessTime = findFileData.ftLastAccessTime.ToDateTime(); ftpDirectoryInfo2.LastWriteTime = findFileData.ftLastWriteTime.ToDateTime(); ftpDirectoryInfo2.CreationTime = findFileData.ftCreationTime.ToDateTime(); ftpDirectoryInfo2.Attributes = (FileAttributes)findFileData.dfFileAttributes; list.Add(ftpDirectoryInfo2); } findFileData = default; } if (Marshal.GetLastWin32Error() != 18) { Error(); } return(list.ToArray()); } finally { if (intPtr != IntPtr.Zero) { WININET.InternetCloseHandle(intPtr); } } }
private List <string> List(string mask, bool onlyDirectories) { WINAPI.WIN32_FIND_DATA findFileData = default; var intPtr = WININET.FtpFindFirstFile(_hConnect, mask, ref findFileData, 67108864, IntPtr.Zero); try { var list = new List <string>(); if (intPtr == IntPtr.Zero) { if (Marshal.GetLastWin32Error() == 18) { return(list); } Error(); return(list); } if (onlyDirectories && (findFileData.dfFileAttributes & 0x10) == 16) { var list2 = list; var text = new string(findFileData.fileName); var trimChars = new char[1]; list2.Add(text.TrimEnd(trimChars)); } else if (!onlyDirectories) { var list3 = list; var text2 = new string(findFileData.fileName); var trimChars2 = new char[1]; list3.Add(text2.TrimEnd(trimChars2)); } findFileData = default; while (WININET.InternetFindNextFile(intPtr, ref findFileData) != 0) { if (onlyDirectories && (findFileData.dfFileAttributes & 0x10) == 16) { var list4 = list; var text3 = new string(findFileData.fileName); var trimChars3 = new char[1]; list4.Add(text3.TrimEnd(trimChars3)); } else if (!onlyDirectories) { var list5 = list; var text4 = new string(findFileData.fileName); var trimChars4 = new char[1]; list5.Add(text4.TrimEnd(trimChars4)); } findFileData = default; } if (Marshal.GetLastWin32Error() != 18) { Error(); } return(list); } finally { if (intPtr != IntPtr.Zero) { WININET.InternetCloseHandle(intPtr); } } }