2020年4月22日水曜日

php windowsの共有ファイルをrenameできない

意味不明の動作に悩んでいます。

まず、ファイルは、windowsの共有フォルダの中にあるファイルです。

このファイルにアクセスするのは、ubuntuのphpで書かれたスクリプトです。

phpで、rename関数を使って、ファイル名を変更しようとしてもできません。
代わりに、passthru関数を使い、mvコマンドを使って、ファイル名を変更しました。

1回目は問題なくできました。
しかし、windowsの方で、ファイル名を元の戻し、再び、実行すると、エラーが発生します。
エラーの内容は、

mv 元のファイル名 are 新しいファイル名 the same file

/etc/fstabに、cache=none を追記して、マウントしても、変わりません。


ファイル名の変更が、1回目はできるのに、元に戻して、2回目は失敗することに、悩んでいます。

Windows内で、別のファイルを作成し、それを、rename前のファイル名に変更するなら、問題は起きません。
単に、ファイル名を元に戻したり、あるいは、元に戻した後、ファイルの内容を編集すると、2回目のファイル名の変更に失敗します。

<追記>
結局、このようにしました。

@unlink($fileFullName2);
rename($fileFullName, $fileFullName2);

unlinkでは、リネーム後のファイルがないため、エラーが発生します。
本来なら、不要な処理です。
しかし、これを行うことで、renameが期待通りに動きました。

renameだけでも、1回目は成功しますから、見つけにくい不具合でした。
PHPでは、1回目にリネームしたファイルがあると認識されるような挙動です。



2020年4月1日水曜日

「chatwork」か、「slack」か

テレワーク時代に備えて、「chatwork」、「slack」を試しています。

メールからの移行であれば、「chatwork」が良さそうです。
特に、連絡相手が、この手のツールを使っていなくて、誘いたい場合は、「chatwork」が良いと思います。
「chatwork」なら、メール、LINE、掲示板などとの差が少なくて、理解しやすいです。

「slack」は、連絡相手も、「slack」を使っていないと厳しそうです。
こちらは、例えば、facebookのグループ機能に似ています。

どちらも、一度、連絡が付けば同じですが、最初の連絡ができるようになるまでの敷居が違います。

例えるなら、「chatwork」は、自分の家と、相手の家の間で、連絡を取り合っている感じ。
「slack」は、自分と相手が集まる場所を作って、連絡を取り合っている感じ。

日本社会の場合、「slack」だと、どちらの家に集まるかで、まず、もめそうな気がします。

両方のツールは、考え方が違うので、どちらかが、どちらかを駆逐するようなことにはならなさそうです。