下記スクリプトを実行すると、『Warning: rename(./aaa/bbb.send,./aaa/bbb.send.gz) [function.rename]: Permission denied in ...line 31←renameの行数』というエラーになります。
===========
<?php
$dir = opendir("./aaa");
$latestfile=0;
while ($fnm = readdir($dir)) {
if($fnm == "." || $fnm == "..") continue;
$ftime = filemtime("./aaa/$fnm");
if($latestfile < $ftime){
$latestfile = $ftime;
$latestfilename =$fnm;
$filename = "./aaa/$latestfilename";
$fp = fopen($filename, "rwb+");
fread($fp, 18); //18バイト読み飛ばす
ftruncate($fp, 0);
$warn = '';
while (!feof($fp)) {
$warn .= fread($fp, 8192);
}
rewind($fp);
fwrite($fp, $warn);
rename($filename,"$filename.gz");
fclose($fp);
}
}
closedir($dir);
?>
=============
renameの手前でchmodを実行させ、aaaディレクトリ及びファイル自身(./aaa/$filename)にパーミッション0777を与えても現象は変わりません。renameする$filenameにつきましても./aaa/$filenameとしたり、./aaa/$latestfilenameとしてみましたがやはり変わりませんでした。
解決策があればご教授願います。
No.2ベストアンサー
- 回答日時:
fclose する前に、rename しようとしているからじゃないですか
No.1
- 回答日時:
./aaaに対してパーミッションのあるユーザでスクリプトを実行していますか?
そうでないとchmod自身も動かないと思いますが・・・
ためしに,ルートで./aaaディレクトリ以下すべてに
0777のパーミッションを事前に設定してしまえば動くと思いますが・・・それでいいかは疑問ですが・・
この回答への補足
./aaaに対してパーミッションのあるユーザーにて実行しているんです。
rename...のところを、
touch("./aaa/newfile.gz")で実行すると
aaaディレクトリにnewfile.gzフィルが作成されます。
※なお補足ですが、renameのすぐ上の行(fwrite($fp, $warn);)までは正常に実行されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
MkDir関数
-
絶対パス?絶対アドレス?意味...
-
バッチを用いたフォルダの自動移動
-
execコマンドについて
-
環境変数をMakefile内で有効に...
-
Permission denied in
-
str ! = NULL
-
ファイル選択ダイアログで選択...
-
更新日時でソートしてファイル...
-
バッチファイルで特定ファイル...
-
ファイル・ディレクトリ削除を...
-
CakePHPのファイルの所有者の権...
-
Subversionで、ファイルをリネ...
-
Subversionのリポジトリの削除
-
ファイルアップロードに関して...
-
ファイルの更新日時でのソート
-
makefile でファイルをコピーす...
-
「mkdir」について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
現在位置より2つ上のディレク...
-
makefile でファイルをコピーす...
-
ファイルアップロードに関して...
-
fopenでファイルが開かない場合...
-
visualstudioでc#のdllができない
-
rmdirでフォルダが消せません
-
絶対パス?絶対アドレス?意味...
-
ファイル選択ダイアログで選択...
-
VB2008でFTPでのディ...
-
バッチファイルで特定ファイル...
-
JAVA内で複数のファイルを削除...
-
Subversionで、ファイルをリネ...
-
unlink「許可がありません」と...
-
[ ディレクトリ '.' は書き込み...
-
aspのページが表示できません
-
MkDir関数
おすすめ情報