[PHP] Windowsでrename、unlinkする方法

伊藤です。

Linux/Mac上で開発されていたコードをWindows上でXAMPP(Apache, MySQL, PHP)を使って動かそうとしたところ、動かないコードがありました。
それはファイル操作のrenameです。

windowsではファイルオープン中にrenameやunlinkでファイルをリネームしたり、削除したりすることができないようです。

Rubyのメーリングリストでも、話題になっていました。(PHPとは関係ないですが、プラットフォームの問題だと思いますので同じでしょう)

対応方法

対策としては、きちんとcloseしてからrename, unlinkすればOKでした。

また、Windowsでは、rename(old, new)としたときにnewのパスに既にファイルが存在していると、
エラーになるという報告もありますので、併せて気をつけたいですね。

UNIX互換OSばかり使っていると、Windowsでの開発のハマりどころを忘れてしまいそうです^^;

ではでは

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

渡辺 正毅

1984年生。サンフランシスコ育ち。大学から憧れの日本に留学し、そのまま移住。2006年慶應大学SFC卒。2007年BPS株式会社設立。いい国ですよね。もっとよくしたい。好きになってくれる人を増やしたい。

渡辺 正毅の書いた記事

夏のTechRachoフェア2019

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ