linux环境ftp下的rename命令文件覆盖问题???

linux环境下的ftp命令里面有一个rename,可以改名和转移文件目录。
现在如果目标文件目录中有跟源目录一样文件名的文件,试了一下是不能覆盖,请问是权限的问题还是rename这个命令本来就不能覆盖???

1个回答

rename操作是否覆盖(overwrite)同名文件,取决于ftp服务器执行机制、访问权限等多种机制。
比如vsftpd会覆盖,而FileZilla会提示已经存在同名文件。

一个合适的方法是在rename之前,先删除想要覆盖的文件,这样能确保rename操作成功。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Linux环境上Java File.renameTo方法重命名文件不同步问题

今天Linux环境上遇到个报错,经查日志发现两个JVM进程里几乎同时对同一个文件进行相同操作的重命名(File.renameTo)都返回true。 基本确定这方法是个非同步的操作了,刷新了认知.... 因为这方法底层是个native方法,所以不容易分析也不容易造出同样的问题场景,有谁同样遇到过,求分析

php在linux系统使用rename()移动文件的时候失败

php使用rename()函数移动文件夹,在windows系统下一切都是正常的,都可以移动,但是在linux系统下就出现了问题。 当文件路径的字符长度短的时候,都可以成功,但是文件路径字符长度过长就返回false,但是我自己查了下,linux系统对文件路径长度的限制是4096个char字符,我设置的文件路径长度很明显没有那么长,但是还是出错,而且rename()只返回true和fasle,没办法看到哪里出错,实在找不出原因了,求助各位大神!代码如下: ``` // $newName = Upload/8adb7ed903a08324dd2b101aa1d12980/543820146415/0/3761402180_453746635.jpg // $newName = ./Upload-Move/Upload/8adb7ed903a08324dd2b101aa1d12980/543820146415/0 // $newFile = ./Upload-Move/Upload/8adb7ed903a08324dd2b101aa1d12980/543820146415/0/3761402180_453746635.jpg $rd = array('status' => -1); if(file_exists($newName)){ $tr = rename($dirName, $newFile); if($tr){ $rd['status']=1; } } else{ $res = mkdir(iconv("UTF-8", "GBK", $newName),0777,true); if($res){ $tr = rename($dirName, $newFile); if($tr){ $rd["status"]=1; } } } ```

求助:关于利用c#修改ftp文件名问题

我在win7系统下运行我写的c#服务,通过服务给linux的ftp传文件,传输成功后修改ftp目录下文件名,但是win7 32位系统下可以正常重命名,但是到win7 64位系统下,linux监测文件改名时,修改的名字前会有一个多余的“/”,但是ftp下重命名的文件不会有多余的“/”,求助大神为什么会出现这个“/”,附上代码 ``` bool isSuccess = ftpHelper.fileUpload(file, ftpSource.FilePath, fileNewName); if (isSuccess) { DataTable svrDataTable = ServerCom.ExeSqlForDataTable("select * from totalstream where isupload=0"); long sum = 0; string fileName = string.Empty; foreach (DataRow row in svrDataTable.Rows) { if (row["FileZipName"].ToString() == file.Name.ToString()) { fileName = row["FileName"].ToString(); sum = Convert.ToInt64(row["StreamNum"]); break; } } DateTime time = DateTime.Now; ftpHelper.fileRename(ftpSource.FilePath, fileNewName, fileName.Replace("txt", "zip")); file.CopyTo(file.DirectoryName + "/" + fileName.Replace("txt", "zip")); file.Delete(); } /// <summary> /// 重命名 /// </summary> /// <param name="ftpPath">ftp文件路径</param> /// <param name="currentFilename"></param> /// <param name="newFilename"></param> public bool fileRename(string ftpPath, string currentFileName, string newFileName) { bool success = false; FtpWebRequest ftpWebRequest = null; FtpWebResponse ftpWebResponse = null; Stream ftpResponseStream = null; try { string uri = ftpRootURL + ftpPath + currentFileName; ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri)); ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword); ftpWebRequest.UseBinary = true; ftpWebRequest.Method = WebRequestMethods.Ftp.Rename; ftpWebRequest.RenameTo = newFileName; ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse(); ftpResponseStream = ftpWebResponse.GetResponseStream(); } catch (Exception) { success = false; } finally { if (ftpResponseStream != null) { ftpResponseStream.Close(); } if (ftpWebResponse != null) { ftpWebResponse.Close(); } } return success; } 目前在win10上可正常传输,win7、winserver都不行

C语言ftp客户端,关于文件重命名

temp=strsep(&rbuf, " "); filename = rbuf; filename=strsep(&rbuf,"\n"); memset(from, 0, 128); memset(to, 0, 128); ret = ftp_rename(filename, from, to);//判断参数是否有效 if (ret < 0) { printf("Argument invalid\n"); fflush(stdout); continue; } rbuf中存的是用户输入的命令,如“rename oldname newname”。 我想问一下,上面那段代码,from和to为什么会有值,还能传给ftp_rename函数? from和to不是都应该为0吗?

linux系统下那个函数可以跨文件系统进行文件拷贝

rename函数不可以进行跨文件爱你系统拷贝,问下那个函数可以进行跨文件系统拷贝文件。比如 linux系统中挂载window系统共享目录怎么将挂载后该目录中的文件拷贝到 linux系统下的另外一个目录中

apache FTPClient FTP如何实现文件移动?

如题: 现在的情况是,我需要在FTP服务器上做这样的操作:A文件夹移动到 B文件夹的子目录.. 看了网上说的用rename移动,根本不行,有经验的大哥大姐们,支个招..

Java中使用FTPClient读取ftp文件过程中无法修改读取文件的文件名

使用FTPClient读取ftp上的某个txt文件内容,存到数据库,然后再加读取到的txt文件重命名,在重命名过程失败,代码如下 public void readAndInsert(){ LOGGER.info("开始读取各场景投诉类型并存入数据库"); //ftp配置信息读取 String host = ConfigUtil.getValue("zhzd.ftp.host"); String userName = ConfigUtil.getValue("zhzd.ftp.username"); String password = ConfigUtil.getValue("zhzd.ftp.password"); //ftp连接 FTPClient ftp = new FTPClient(); try { ftp.connect(host); ftp.login(userName,password); } catch (Exception e) { LOGGER.info("投诉工单类型:ftp连接异常..."); e.printStackTrace(); } //ftp文件读取 FTPFile[] files = null; String targetFileName = ""; //目标文件名 try { files = ftp.listFiles(); int length = files.length; int fileNum = 0; //txt文件个数 List<String> fileList = new ArrayList<String>(); //存储所有txt文件名 for(int i=0;i < length ;i++){ if(files[i].getName().contains("txt")){ fileList.add(files[i].getName()); fileNum++; }; } //ftp文件操作-获取目标文件,其他文件放入old文件夹 if(fileNum == 0){ //没有txt文件,不更新 LOGGER.info("投诉工单类型:FTP下没有txt文件..."); ftp.disconnect(); return; }else if(fileNum == 1){ //只有一个txt,不读取,不更新 LOGGER.info("投诉工单类型:FTP下只有一个txt文件,今日数据库不需更新..."); ftp.disconnect(); return; }else{ //两个或者多个,取日期最大的那个 int[] dateArr = new int[fileNum]; for(int i=0;i<fileNum;i++){ dateArr[i] = Integer.parseInt(fileList.get(i).split("_")[3].substring(0, 8)); } Arrays.sort(dateArr); //留下日期最大的文件,其余的都放入old文件夹 /***********************其他没有读取的文件可以重命名(rename)******************************/ for(int i=0;i<fileNum;i++){ if(fileList.get(i).contains(String.valueOf(dateArr[fileNum-1]))){ targetFileName = fileList.get(i); LOGGER.info("投诉工单类型:目标文件为{}...", targetFileName); fileList.remove(i); break; } } //移动文件 Iterator<String> it = fileList.iterator(); String backName = ""; while(it.hasNext()){ backName = it.next(); ftp.rename(backName,"old/"+backName); LOGGER.info("投诉工单类型:文件{}放入old文件夹...",backName); } } } catch (Exception e) { LOGGER.info("投诉工单类型:ftp文件列表读取异常..."); e.printStackTrace(); } //数据库操作 if(!"".equals(targetFileName)){ //删表 dnTimerDao.deleteSendType(); //读文件 InputStreamReader read = null; try { read = new InputStreamReader(ftp.retrieveFileStream(targetFileName),"GBK"); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; String[] str = null; while ((lineTxt = bufferedReader.readLine()) != null) { str = lineTxt.split(""); //存入数据库 if(str.length == 7){ dnTimerDao.insertSendType(str); }else{ throw new IOException("文件内容读取异常!"); } } read.close(); /*******************我用字符流读取的文件重命名失败,我将字符流、 字节流、输入流等都关闭了,也无法重命名*********************/ ftp.rename(targetFileName,"old/"+targetFileName); LOGGER.info("完成各场景投诉类型的读取和存入"); } catch (UnsupportedEncodingException e) { LOGGER.info("投诉工单类型:文件编码异常..."); e.printStackTrace(); } catch (IOException e) { LOGGER.info("投诉工单类型:文件内容的读取异常..."); e.printStackTrace(); } finally { if(read != null){ try { read.close(); } catch (IOException e) { e.printStackTrace(); } } try { ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } }

java操作FTP文件移动问题

公司要求把FTP上的文件读取完后移动到另一个文件中,我用了在网上查的ftpClient.rename没有反应,请各位大神支招

shell脚本中rename修改文件名中得引入变量问题

我有这样很多文件夹:sample0001;samle0012,每个文件夹中有很多文件,我要将这些文件得一部分修改为 文件夹得名字,用rename是十分合适的,但是,perl中得rename语句rename ‘s/ / /’有单引号,我就无法将被修改的部分用变量替代了. 代码如下 fnt=`ls -F | grep '/$'` echo $fnt for i in $fnt do echo $i cd $i echo `pwd` rename -n "s/fgong_/$i/" * cd .. done 使用双引号也不可以,但是变量i中有斜杠“/”,这个是否会影响语句呢,如果是怎么解决呢 谢谢!

关于文件操作函数rename与remove

我把文件指针都关闭了,可是调用rename(重命名文件)和remove(删除文件)函数都不起作用?把中间对文件的操作注释掉也一样,不知道哪里出了问题。。。两个函数的返回值都是-1,我也去查了原因,网络上讲解的好像都不是呀

无法使用php重命名或删除ftp服务器上的文件

<div class="post-text" itemprop="text"> <p>I wrote a php script locally on my machine that worked. But when I uploaded it too my ftp server i ran into some issues. Obviously I couldn`t use rename function etc, and had to change to ftp_rename etc. So the problem is that I can't rename or delete any files with my php script. I have tried to change permissions on files and root directory without any luck. I can browse the files, but not rename or delete them. I don't get any error messages either, the file doesn't load and I get a 500 server error if I try to rename or delete. Any suggestions? </p> <pre><code>$ftp_server = ""; $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); $login = ftp_login($ftp_conn, "username", "password"); $files = ftp_rawlist($ftp_conn, "www/subtitlesyncer/uploads"); ftp_delete($ftp_conn, "www/subtitlesyncer/uploads/newfile.txt") if (ftp_rename($ftp_conn, "www/subtitlesyncer/uploads/newfile.txt","www/subtitlesyncer/uploads/new_file_edited.txt")) { ... } </code></pre> <p>I use this settings, but can`t get any error.</p> <pre><code>ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(-1); </code></pre> <p>This is the file I try to edit:</p> <pre><code>-rw-r--r-- 1 &lt;username&gt; &lt;username&gt; 130782 Sep 28 14:41 newfile.txt </code></pre> <p>I did set the permission on folder and subfiles and subfolders to 777 (for testing), but when I create the textfile it gets 644. But I've changed the permissions the textfile to 777 aswell, I still can`t delete it.</p> </div>

awk 或sed 或rename 批量重命名文件,均告失败!

如: 1 Ch6 Lect8a 110912.en.srt 2 Ch6 Lect8b 110913.en.srt 中的 ".en"去掉,分别重命名为: 1 Ch6 Lect8a 110912.srt 2 Ch6 Lect8b 110913.srt 在win7+cygwin的终端下: 我试了几种方法 1. for file in `ls ./*.en.srt -1` #-1,每行只有一个文件 do echo "$file" mv "$file" `echo "$file"|sed 's/\.en//g'` #注意这里有倒引号 done 2. find ./ -name '*.en.srt'|awk '{print $0;a=$0;sub(/\.en/,"",$0); mv a $0}'|bash 3.rename 's/\.en//g' *.srt 三种方法均失败,因为文件名中有空格,无奈之下,我用python写了脚本,完成了我的任务,但是并不甘心,难道linux命令无法处理小小的空格?请高手指点迷津!! 希望有人能够找出我错误的原因。 可以产生一个文件做测试: touch "1 Ch6 Lect8a 110912.en.srt" "2 Ch7 Lect8a 110912.en.srt"

调用文件重命名函数rename失败,errno的值为17,如何解决?

void onMenuDele(char *id) { FILE *p=fopen("f:\\employee.txt","r"); //打开文件 if(p==NULL) { printf("Sorry!employee.txt cannot open!\n"); return ; } FILE *fp2=fopen("f:\\employ.txt","w+"); //创建临时文件 if(fp2==NULL) { printf("Sorry!employ.txt cannot open!\n"); return ; } char s[68]; char t[4],*q=id; while(!feof(p)) { fgets(s,68,p); if(!feof(p)) { int count=0; id=q; for(int i=3,j=0;i<=6,j<4;i++,j++) { t[j]=s[i]; if(t[j]==*id) { id++; count++; } } if(count!=4) fprintf(fp2,"%s",s); } } fclose(p); fclose(fp2); /*if(remove("f:\\employee.txt")==0) printf("The file has been deleted!\n"); else printf("Sorry!The file cannot be deleted!\n"); if(rename("f:\\employ.txt","f:\\employee.txt")==0) printf("The file has been renamed!\n"); else printf("Sorry!The file cannot be renamed!\n");*/ int re_remove=remove("f:\\employee.txt"); int re_rename=rename("f:\\employ.txt","f:\\employee.txt"); printf("re_remove=%d",re_remove); printf("re_rename=%d",re_rename); int errno_t=errno; printf("errno=%d",errno_t); }

仅在文件存在时才创建目录(ftp mkdir)

<div class="post-text" itemprop="text"> <p>I currently have a program that connects to an ftp directory, if it finds csv files, runs a script, then after the script has run on the files, it creates a back up folder with the date and moves the csv files to this newly created back up folder in the ftp directory.</p> <p>However, if there are no csv files in the root directory, I do not want a backup folder to be created, as there are no files to move. I know the solution is probably really simple but I cannot seem to figure it out!</p> <pre><code> logMessage("Creating backups"); $ftp_connection = @ftp_connect($ftp_url, $ftp_port, 6000); if(!@ftp_login($ftp_connection, $ftp_username, $ftp_password )) { logMessage("Could not connect to FTP: [$ftp_url], with Username: [$ftp_username], and Password: [$ftp_password]"); die(); } $date = date('Y_m_d_(His)'); $newBackup = $ftp_root."/".$ftp_backup."backup_$date"; if (ftp_mkdir($ftp_connection, $newBackup)) { logMessage ("Successfully created [$newBackup ]"); foreach($filesToProcess as $file){ $pathData = pathinfo($file); if(isset($pathData['extension']) &amp;&amp; $pathData['extension'] == 'csv'){ if(!@ftp_rename($ftp_connection, $ftp_root.'/'.$file, $newBackup."/".$file) ){ logMessage("Unable to move file: $file") } } } } </code></pre> </div>

用php语言重命名所有文件和文件夹ftp

<div class="post-text" itemprop="text"> <p>i want rename all files and folder recursively i written a function that works and rename files but my problem when occurred when i make array of files and folders in a path, its not sort as parent child so when i rename parent folder first , in next loop when function wants rename child said "No such file or directory" its true Error cause parent folder renamed a couple minutes ago</p> <p>i changed my code but not help me code for reading files and folder from ftp :</p> <pre><code> if (!self::ftp_is_dir($resource, $thisPath)) { // for Files (anything that isnt a readable directory) if ($first == TRUE) { return array("Path doesn't Exist (" . $thisPath . ")"); } $theList[] = $thisPath; return $theList; } else { $contents = ftp_nlist($resource, $thisPath); // For empty folders if (count($contents) == 0) { $theList[] = $thisPath; return $theList; } else { $theList[] = $thisPath; } // Recursive Part foreach ($contents As $file) { $theList = self::ftp_nlistr($resource, $file, $theList, FALSE); } return $theList; } </code></pre> <p>and this return array like this <a href="https://i.stack.imgur.com/3jYqT.png" rel="nofollow noreferrer">enter image description here</a></p> <p>and this code i used for renaming folder and files</p> <pre><code>$replacers = array(" ", "", " ", "-=", "=-", '©',"!", ";", "#", "@", "'", '&lt;', '&gt;'); foreach ($paths as $path) { if (preg_match('/' . implode('|', $replacers) . '/', $path) != 0) { $route = preg_replace('/ftp/', "ftp://ftp.mylocal.co", $path, 1);; if (is_dir($route)) { $newName = str_replace($replacers, "_", basename($path)); $directory = pathinfo($path); if (ftp_rename($connectionID, $path, $directory['dirname'] . '/' . $newName)) { Logger::setLog('renaming', "Renaming: $path to $newName"); } else { Logger::setLog('failed to renaming', "Renaming: $path to $newName"); } } else { $newName = str_replace($replacers, "_", basename($path)); $directory = pathinfo($path); if (ftp_rename($connectionID, $path, $directory['dirname'] . '/' . $newName)) { Logger::setLog('renaming', "Renaming: $path to $newName"); } else { Logger::setLog('failed to renaming', "Renaming: $path to $newName"); } } } } </code></pre> <p><a href="https://i.stack.imgur.com/3jYqT.png" rel="nofollow noreferrer">[1]: https://i.stack.imgur.com/xk3kx.png</a></p> <pre><code>public static function ftp_is_dir($conn, $dir) { $cdir = ftp_pwd($conn); if (@ftp_chdir($conn, $dir)) { ftp_chdir($conn, $cdir); return true; } else { return false; } } </code></pre> </div>

php rename() 失败问题

代码: $before = '/Applications/MAMP/htdocs/www/store/data/log/ before.txt'; $after = '/Applications/MAMP/htdocs/www/store/data/log/' . 'after.txt'; if (rename($before, $after)) { echo "换名成功"; }else{ echo "换名失败"; } 报错提示:返回值一直是false,换名失败。。。 环境: mac电脑 + sublime编辑器

java.io.File.renameTo会删除源文件?

现在我有一个操作,需要调用java.io.File.renameTo这个方法重命名文件。实现代码大致如下, [code="java"]public void reNameFile() { File file = new File( "C:\\folderA\\sample.zip"); File newFile = new File("C:\\folderB\\sample.zip"); boolean reNameOK = file.renameTo(newFile); boolean deleteOK = file.delete(); if (reNameOK) { System.out.println("rename ok"); } if((deleteOK){ System.out.println("delete ok"); } }[/code] 我发现在调用renameTo之后,在把sample.zip放到folderB中的同时,folderA中的sample.zip也被删除了,这样一来当调用delete的时候,返回值deleteOK就是false。这是我在windows下测试的结果,不知道在linux下是怎么样的。如果renameTo在linux下也能删除源文件,是不是就不需要调用delete了?

WebApi 上传附件到 ftp 服务器

想要实现的功能:Post附件到WebApi,WebApi 将文件转发到 ftp服务器。 主要功能已经实现,有一个问题:需要在WebApi服务器,接收流写入WebApi本地文件,然后读取文件流写入 ftp 服务器,然后再删除WebApi 服务器上的本地文件,现在不想在WebApi本地写文件,直接取Request的流写入到 ftp,不知道能不能实现,应该怎样写? 1. Post附件到WebApi 主要代码: #region 上传文件 /// <summary> /// 通过multipart/form-data方式上传文件 /// </summary> /// <returns></returns> [HttpPost] public async Task<HttpResponseMessage> PostFile() { MessagesDataCodeModel json = new MessagesDataCodeModel(false, "无效参数", 401); try { // 是否请求包含multipart/form-data。 if (!Request.Content.IsMimeMultipartContent()) { logger.Error("上传格式不是multipart/form-data"); throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = HttpContext.Current.Server.MapPath("/UploadFiles/"); if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadFiles/"))) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/UploadFiles/")); } var provider = new MultipartFormDataStreamProvider(root); StringBuilder sb = new StringBuilder(); // Holds the response body // 阅读表格数据并返回一个异步任务. await Request.Content.ReadAsMultipartAsync(provider); // 如何上传文件到文件名. foreach (var file in provider.FileData) { string orfilename = file.Headers.ContentDisposition.FileName.TrimStart('"').TrimEnd('"'); FileInfo fileinfo = new FileInfo(file.LocalFileName); //sb.Append(string.Format("Uploaded file: {0} ({1} bytes)\n", fileInfo.Name, fileInfo.Length)); //最大文件大小 //int maxSize = Convert.ToInt32(SettingConfig.MaxSize); if (fileinfo.Length <= 0) { json.Success = false; json.Msg = "请选择上传文件"; json.Code = 301; } else if (fileinfo.Length > ConfigHelper.MaxFileSize) { json.Msg = "上传文件大小超过限制"; json.Code = 302; } else { string fileExt = orfilename.Substring(orfilename.LastIndexOf('.')); //定义允许上传的文件扩展名 //String fileTypes = SettingConfig.FileTypes; //if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1) //{ // json.Msg = "图片类型不正确"; // json.Code = 303; //} //else //{ //String ymd = DateTime.Now.ToString("yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo); //String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", System.Globalization.DateTimeFormatInfo.InvariantInfo); fileinfo.CopyTo(Path.Combine(root, fileinfo.Name + fileExt), true); json.Success = true; json.Msg = "操作成功"; json.Code = 200; sb.Append("/UploadFiles/" + fileinfo.Name + fileExt); json.Data = sb.ToString(); //} } fileinfo.Delete();//删除原文件 } } catch (System.Exception e) { json.Success = false; json.Msg = "服务器无响应"; json.Code = 500; logger.Error("PostFile()服务器错误", e); } return ToJsonTran.ToJson(json); } #endregion 上传文件 2. 上传到 ftp服务器 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo">需要上传的文件</param> /// <param name="targetDir">目标路径</param> /// <param name="hostname">ftp地址</param> /// <param name="username">ftp用户名</param> /// <param name="password">ftp密码</param> public static void UploadFile(FileInfo fileinfo, string targetDir, string hostname, string username, string password) { //1. check target string target; if (targetDir.Trim() == "") { return; } target = Guid.NewGuid().ToString(); //使用临时文件名 string URI = "FTP://" + hostname + "/" + targetDir + "/" + target; ///WebClient webcl = new WebClient(); System.Net.FtpWebRequest ftp = GetRequest(URI, username, password); //设置FTP命令 设置所要执行的FTP命令, //ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails;//假设此处为显示指定路径下的文件列表 ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile; //指定文件传输的数据类型 ftp.UseBinary = true; ftp.UsePassive = true; //告诉ftp文件大小 ftp.ContentLength = fileinfo.Length; //缓冲大小设置为2KB const int BufferSize = 2048; byte[] content = new byte[BufferSize - 1 + 1]; int dataRead; //打开一个文件流 (System.IO.FileStream) 去读上传的文件 using (FileStream fs = fileinfo.OpenRead()) { try { //把上传的文件写入流 using (Stream rs = ftp.GetRequestStream()) { do { //每次读文件流的2KB dataRead = fs.Read(content, 0, BufferSize); rs.Write(content, 0, dataRead); } while (!(dataRead < BufferSize)); rs.Close(); } } catch (Exception ex) { } finally { fs.Close(); } } ftp = null; //设置FTP命令 ftp = GetRequest(URI, username, password); ftp.Method = System.Net.WebRequestMethods.Ftp.Rename; //改名 ftp.RenameTo = fileinfo.Name; try { ftp.GetResponse(); } catch (Exception ex) { ftp = GetRequest(URI, username, password); ftp.Method = System.Net.WebRequestMethods.Ftp.DeleteFile; //删除 ftp.GetResponse(); throw ex; } finally { //fileinfo.Delete(); } // 可以记录一个日志 "上传" + fileinfo.FullName + "上传到" + "FTP://" + hostname + "/" + targetDir + "/" + fileinfo.Name + "成功." ); ftp = null; #region /***** *FtpWebResponse * ****/ //FtpWebResponse ftpWebResponse = (FtpWebResponse)ftp.GetResponse(); #endregion }

重命名文件和目录(添加前缀)

<div class="post-text" itemprop="text"> <p>I would like to add prefix on all folders and directories.</p> <p>Example:</p> <p>I have</p> <pre><code>Hi.jpg 1.txt folder/ this.file_is.here.png another_folder.ok/ </code></pre> <p>I would like to add prefix "PRE_"</p> <pre><code>PRE_Hi.jpg PRE_1.txt PRE_folder/ PRE_this.file_is.here.png PRE_another_folder.ok/ </code></pre> <p>Regards,</p> </div> <p>转载于:https://stackoverflow.com/questions/4787413/rename-files-and-directories-add-prefix</p>

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

Linux命令学习神器!命令看不懂直接给你解释!

大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢? 答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

史上最全的 python 基础知识汇总篇,没有比这再全面的了,建议收藏

网友们有福了,小编终于把基础篇的内容全部涉略了一遍,这是一篇关于基础知识的汇总的文章,请朋友们收下,不用客气,不过文章篇幅肯能会有点长,耐心阅读吧爬虫(七十)多进程multiproces...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

大学一路走来,学习互联网全靠这几个网站,最终拿下了一把offer

大佬原来都是这样炼成的

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

立即提问
相关内容推荐