VB6.0で作成したアプリケーション内でCSVファイルの
作成をし、共有フォルダへ保存するという処理があります。
XP上では問題なくファイルが作成されるのですが
VISTA上だとファイルが作成されません。
↓以下コードサンプル
Dim strFileNM As String
strFileNM = "Z:\test.csv"
Open strFileNM For Output As #1
strCSV = "aaa,bbb,ccc"
'ファイルの書込み
Print #1, strCSV
'ファイルクローズ
Close #1
社内にVISTAが1台もないので
テストできない状況です。。。
どなたかお分かりになりましたら
対処方法をご教授願います。
ファイルを、システム用のフォルダ(ルート、Program Files など)に保存していませんか?
それらのフォルダに、管理者権限無しで書き込もうとすると、実際のファイルは
C:\Users\AppData\VirtualStore\〜
や、
C:\Users\[ユーザ名]\AppData\Local\VirtualStore\〜
などに出力されることになりますので注意してください。
また、別サーバに保存しているのだとすれば、認証状況も確認しておいてください。
> 社内にVISTAが1台もないので
……事情は聞かないでおきますが、VirtualPC でも良いので、
そろそろ、検証機ぐらいは導入しておくべき時期かと思いますよ。
(来夏には、WinXP の出荷も停止されるのですし)
ありがとうございます。
申し訳ありませんが、
具体的にどのように対応すべきか
教えていただけますでしょうか。
VistaPCはサーバの共有フォルダを
ドライブのZドライブに「割り当て」してます。
ですのでCSVの出力先は「Z:\test.csv」として
処理をしています。
サーバ側は出力先の共有フォルダに対し、
「Everyone」にアクセス権を設定しています。
Vista側はどのような設定が必要でしょうか。
よろしくお願いします。
調べてみました。
ユーザーアカウント制御(UAC)を無効に
すると回避できるようです。
しかし、無効にした場合の
影響が良くわかりません。
CSV出力する時だけ
無効にすればよいのでしょうか。。。
しかし、あまり現実的ではないですよね。。
かなり煩わしい。
もう少し調査してみます。
Z:\のアクセス権限はどうなっていますか?
Usersのアクセス権限が読み取り専用になっているのではないかと思います。
あと、『管理者モードで実行』を選択したときはどうなりますか?
管理者モードと制限ユーザモードとでは、ネットワークドライブの
割り当ては独立していたと思うので。
>Usersのアクセス権限が読み取り専用になっているのではないかと思います。
Usersには「フルコントロール」を許可していますが、CSV出力できません。
『管理者モードで実行』した場合、
ファイルOPENでエラーとなります。
ということは、管理者モードでもドライブの割り当てを行い、
管理者モードで実行すればよいと言うことでしょうか?
今日明日中にはVistaを用意できそうですので、
引き続き調査します。
ツイート | ![]() |