public static void UploadingOuterNet() { if (Program.LockOuterNet) { return; } if (AssetOperation.isUploadingOuterNet) { FTPUtils.UseProxy = true; string root = Program.ProjectRootPath; string gangsterRes000 = Program.VersionFolder; var resourcePath = root + "\\" + gangsterRes000 + "\\"; Program.ConsoleLog("上传修改的资源到外网中..."); if (Program.Gangster_0_0_0_Path != "") { FTPUtils.UploadingFile(Program.Gangster_0_0_0_Path, MainUploading.OuterNetFTPRootPath + "/" + Program.Gangster0_0_0_res_json); } var list = AssetOperation.ListChangeFils; for (int i = 0; i < list.Count; i++) { var path = list[i]; path = path.Replace('\\', '/'); var relatePath = AssetOperation.GetRelatePath(path, root); var targetFtpPath = MainUploading.OuterNetFTPRootPath + relatePath; FTPUtils.UploadingFile(path, targetFtpPath); } Program.ConsoleLog("上传修改的资源外网完成"); MainUploading.UploadingWebsources(); } }
public static void MakeDir(string dirPath) { if (!FTPUtils.FtpDirExists(dirPath)) { try { FtpWebRequest ftp = FTPUtils.GetRequest(dirPath, WebRequestMethods.Ftp.MakeDirectory); FtpWebResponse response = (FtpWebResponse)ftp.GetResponse(); response.Close(); } catch (Exception ex) { Console.WriteLine("创建文件失败,原因: " + ex.Message); } } }
public static void Uploading(string resourcePath) { if (MainUploading.isUploading) { Console.WriteLine("上传中..."); var list = FileCollector.ListResourceInfo; for (int i = 0; i < list.Count; i++) { var item = list[i]; var filePath = resourcePath + item.filePath; var targetFtpPath = MainUploading.FTPRootPath + "/" + item.filePath; FTPUtils.UploadingFile(filePath, targetFtpPath); } } }
public static bool FtpDirExists(string dirPath) { FtpWebRequest reqFtp = FTPUtils.GetRequest(dirPath, WebRequestMethods.Ftp.ListDirectory); FtpWebResponse resFtp = null; try { resFtp = (FtpWebResponse)reqFtp.GetResponse(); FtpStatusCode code = resFtp.StatusCode;//OpeningData resFtp.Close(); return(true); } catch { if (resFtp != null) { resFtp.Close(); } return(false); } }
//ftp://192.168.19.58/WebResource/resource /assets/test/111.png public static void CheckDir(string filePath) { var ftpRoot = MainUploading.FTPRootPath; var fileUrl = filePath.Replace(ftpRoot, ""); var dirs = fileUrl.Split('/'); var dirPath = ftpRoot; for (int i = 0; i < dirs.Length - 1; i++) { if (dirs[i] == "") { FTPUtils.MakeDir(dirPath); } else { dirPath = dirPath + "/" + dirs[i]; FTPUtils.MakeDir(dirPath); } } }
public static void UploadingWebsources() { FTPUtils.UseProxy = true; string gangsterRes000 = Program.VersionFolder; Program.ConsoleLog("上传webresources到外网中..."); string webresourcePath = Program.WebResourcePath + FTPUtils.WebResourceUploadingDir; var files = Directory.GetFiles(webresourcePath, "*.*", SearchOption.AllDirectories); foreach (var file in files) { var path = file; path = path.Replace('\\', '/'); var relatePath = AssetOperation.GetRelatePath(path, webresourcePath); var targetFtpPath = MainUploading.OuterNetFTPRootPath + "/" + gangsterRes000 + "/" + FTPUtils.WebResourceUploadingDir + relatePath; FTPUtils.UploadingFile(path, targetFtpPath); } Program.ConsoleLog("上传webresources外网完成"); }
public static void UploadingFile(string filePath, string ftpPath) { var url = ftpPath; FileInfo fileInfo = new FileInfo(filePath); var username = FTPUtils.UserName; var password = FTPUtils.Password; FTPUtils.CheckDir(ftpPath); FtpWebRequest reqFtp = FTPUtils.GetRequest(url, WebRequestMethods.Ftp.UploadFile, username, password); reqFtp.ContentLength = fileInfo.Length; //缓冲大小设置为2KB const int BufferSize = 2048; byte[] content = new byte[BufferSize]; int contentLen; bool success = true; using (FileStream fs = fileInfo.OpenRead()) { try { using (Stream rs = reqFtp.GetRequestStream()) { contentLen = fs.Read(content, 0, BufferSize); while (contentLen != 0) { rs.Write(content, 0, contentLen); contentLen = fs.Read(content, 0, BufferSize); } } } catch (Exception ex) { success = false; Console.WriteLine(ex.Message); } finally { Console.WriteLine(fileInfo.FullName + (success ? " 上传成功" : " 上传失败")); reqFtp = null; } } }