利用php實現檔案遷移重新命名

2022-02-06 22:47:32 字數 1739 閱讀 4514

首先表明,這是乙個悲傷的故事。  

暑假來臨,學校安排我們到某軟體外包公司實習,想想不用面試也是蠻方便的,可以藉此機會向大牛學習學習,雖然沒有工資(據說學校還交了600塊的保險),但想想還是蠻期待的,但真正到公司就懵逼了~技術人員都不在好不好!職位都安排好了,什麼人力資源,經營管理,還有財務管理之類,做培訓的,但沒有乙個寫**的啊!

我被分到了經營管理部門,每天接觸的是各種合同審批,合同掃瞄,合同蓋章,合同...  總之圍著合同團團轉,打雜遠遠多於學習。想想如果沒有我們那些公司的人也要處理如此重複無聊的工作,真是讓我對工作有點抗拒了。

不閒扯了,我遇到了這麼乙個問題。公司合同文字在存檔前都要掃瞄到計算機上然後上傳到公司系統。 所有掃瞄完的合同都存在乙個資料夾裡,當初掃瞄時為了方便統一命名為

"cd+年份+月份+合同編號.pdf";例如15年7月的第10份合同命名為「cd1507010.pdf」。每個月合同大概有300份左右。為了上傳到系統,有兩種方法,一種是乙份乙份上傳到系統,一種是在本地重新命名好打包傳送到系統。 手工操作的話,無論哪一種都耗時在乙個小時以上。如此重複無聊的工作,簡直讓人奔潰。對於第一種方法,由於不了解系統,我沒有做更多深究,我著重考慮第二種方法。在本地重新命名規則是將原來的pdf檔案放置在"檔名+c"的資料夾下,並且重新命名為htwb.pdf

本著重複工作盡量交給計算機去做的原則,我考慮用自己所學的php語言來解決問題。(不知道其他語言是否更加高效,但這明顯要比純手工更高效)。

公司電腦配置為win7系統,雖說是一家軟體公司,但是非研發部門的計算機水平和一般公司的無異。考慮到操作人員的計算機相關知識,也考慮到實現的便捷性,我沒有安裝apache伺服器甚至也沒有啟動windows自帶的iis,直接利用命令列進行操作。

名為htzy.php的指令碼如下:

<?php 

$path=dirname(__file__

);$handle=opendir($path

);while (!($item=readdir($handle))==false) }

unlink('./htzy.php');

?>

將此檔案放置在要處理的資料夾下,在資料夾開啟命令列視窗,輸入  

php -f htzy.php

稍等幾秒就好。  

簡單利用  mkdir()  rename()函式完成檔案轉移,最後利用unlink刪除指令碼,所以,要重複利用此指令碼的話需要儲存好它~

至此,檔案遷移重新命名完成。

後記:今天利用本方法在公司電腦上進行檔案遷移時發生了灰常尷尬的一幕:不僅沒有完成預定任務,還頻頻報錯,等我再細細察看,發現真正發生遷移的是操作資料夾的上的好幾層目錄。 結果是可想而知的,如此一來將上幾層 的某個目錄下的檔案資料夾進行了遷移重新命名!!!萬幸的是沒有破壞太多的有價值的文件,也可以手工回覆。

作為乙個程式設計師必然不能容忍程式的此種背叛。 經過我細細察看,發現dirname(__file__)生成的竟然是實際操作了的那個資料夾。通過多次測試,發現在windows下漢字字元直接亂碼,後面的部分被忽略掉了。比如c:\users\administrator\desktop\桌面 這個路徑通過dirname(__file__)生成的竟然是c:\users\administrator\desktop,為了避免這種情況,將原來**$path=dirname(__file__);調整為$path=dirname('./htzy.php');

今後寫**還是多留心,多測試,最重要的還是不能太自信。

python實現檔案重新命名

encoding utf 8 importos path demo1 filelist os.listdir path 該資料夾下所有的檔案 包括資料夾 count 0 forfileinfilelist print file forfileinfilelist 遍歷所有檔案 olddir os.p...

PHP自動重新命名檔案演算法

php重新命名檔名我們在實際開發過程中經常會使用到,比如使用者上傳檔案或是一些快取檔案自動生成的功能我們都需要使用到自動重新命名功能。但一般我們在製作上傳檔案時命名方式都是使用取系統當前時間加上隨時數的方式在進行,這種方法固然可行但有時候並不能滿足客戶要需求。有些客戶就要求我們的檔名 命名方式要像w...

php 複製檔案並重命名

最近公司年會要多乙個 頁,發了每個人的頭像,命名為工號 個人名字.jpg 1035 名字.jpg 批量重新命名並獲取每個人的名字上 header content type text html charset utf 8 將原檔案複製 function recurse copy src,des els...