- - PR -
フォルダアクセス権限によるエラー回避方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-07-30 09:52
こんにちは。
VBAでサーバにファイルを書き込みに行きます。 セキュリティ強化のため、フォルダに対する権限が 新規ファイル作成可 ファイル削除不可、 ファイル変更不可 に変更されました。 当初、FSOを使って直接サーバに書き込んでいたのですが権限の変更によって、権限がないというエラーになりました。 そこでローカルにいったん作ってから、FileColpyでファイルを作成するようにしたのですが、それでもエラー。 今はOn Error を使っています。 どうもファイルコピーでもOSとしては ファイルを作成する->ファイルを開く->バッファの容量ずつ追加書き込みする->ファイルを閉じる という流れになっているようで、どうしてもエラーが出てしまうようです。 On Error にしたのは、FileCopyでエラーになっていてもファイルは作成され、中身もコピーされていたからです。 APIのコピー(アニメーションがでる)を使ってもエラーになり、この場合はファイルは作製されても中身はコピーできませんでした。 On Error を使った回避方法以外の方法はありますか? | ||||
|
投稿日時: 2008-07-30 23:39
Win32 CopyFile function もコケますね。
WMI CIM_DataFile class の Copy Method だといけるようです。
[追記]できたと思ったら cancel されてる。。。 [ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2008-07-30 23:44 ] | ||||
|
投稿日時: 2008-07-31 11:37
回答ありがとうございます。
試してみたのですが、エラーは出なかったけどコピーできてませんでした。 参考になるかわかりませんが、以下の操作でもエラーになります。 (1)メモ帳を開く。何かしらテキストを入力 (2)名前をつけて保存 で、新規作成可・更新不可のフォルダを指定する。 (3)「<ファイルフルパス名> は既に存在します。上書きしますか?」とメッセージ。 (4) はい で「ファイル<フルパス名> を作成できません。パスおよびファイル名が正しい確認してください。」となってファイルは作れても、中身が空になってしまう。 WMI CIM_DataFile class の Copy Method でも、ローカルで成功するパスと成功しないパスがあるみたいです。 D:\Temp 直下で失敗。 D:\Temp\etc\ で成功。 On Error での回避が楽だなぁ。なんか怖いけど。 |
1