この記事では主に、ASP のファイル移動機能 movefile の権限が不足している場合の代替方法を紹介し、それが必要な友人はそれを参照してください。
最近、D ドライブ上のすべてのファイルを E ドライブに移動するステートメントを作成するプロジェクトに取り組んでいます。ローカル XP 環境でテストすると良いでしょう。
ただし、これを Windows 2003 サーバーに配置すると、権限が不十分であるというメッセージが表示されます。
私のIIS WebサイトのディレクトリはDドライブに配置されており、Eドライブは新しく追加されたボリュームです。一部のファイルは非常に大きく、たくさんありますが、Dドライブでは十分ではないため、この戦略を思いつきました。
Baidu で検索したところ、これらの問題の多くは、E ドライブのアクセス許可を増やすか、E ドライブを仮想ディレクトリとして使用することに他なりません。
しかし、それは機能せず、リマインダーはまだ表示されています。唯一の違いは、XP ではボリュームを変更したくないのに対し、ダイナミック ボリュームを使用していることです。
最終的に次の方法を見つけました。
fso の movefile を使用すると、権限が不足するため、コードを実行できません。
したがって、不必要なトラブルを避けるために、copyfile を使用してから deletefile を使用してください。
今すぐ:
次のようにコードをコピーします。
Set fso=CreateObject("scripting.filesystemobject")
fso.MoveFile "ファイルパス","ターゲット"
これにより問題が発生します。
使用:
次のようにコードをコピーします。
Set fso=CreateObject("scripting.filesystemobject")
fso.CopyFile "ファイルパス","ターゲット"
fso.DeleteFile "ファイルパス"
これで問題は決定的に解決されました。コピーはできますが、移動はできません。
4.30アップデート
いろいろいじってみたところ、E ドライブのアクセス許可の問題ではなく、D ドライブのアクセス許可、つまり IIS Web サイトのディレクトリのアクセス許可の問題であることがわかりました。
インターネット ゲスト アカウントを D ドライブに追加します。つまり、IUSR_ で始まるアカウントを追加します。このアカウントは IIS アカウントです。
その場合は、MoveFile を使用しても問題ありません。
ファイルを移動または削除する場合、最初に確認する必要があるのは、ターゲット ファイルのアクセス許可ではなく、ソース ファイルのアクセス許可です。
インターネット上のチュートリアルは本当に有害です。