• ベストアンサー

FileExitsについて

ファイルの存在を確認する方法として"FIleExists"がありますが、 あれはローカルのディスクにしか使用できないのでしょうか? ネットワークドライブ内のファイルを調べようとしたのですが、うまく行きません。 調べたいファイルのパスは正しく取得できていますし、もちろんそのパスにファイルは存在します。 使用が可能なのか不可なのかと、もし不可なら他の方法も教えていただければと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • kawabata
  • ベストアンサー率67% (21/31)
回答No.2

まず、FileExists に指定するパスは \\server\sharename\directory\file.ext という形式にされていますでしょうか。 S:\directory\file.ext としても、asp にとっては、S:ドライブが どのネットワークパスなのか、わかりません。 次に、\\server\sharename はどのような アクセス権になっていますでしょうか。 ASPを匿名ユーザーとしてアクセスすると、 「IUSER_サーバー名」のユーザーとしてASPスクリプトは 動作します。 このユーザーが共有ディレクトリにアクセス権があるか 確認していただければと思います。 あるいは、ASPファイルに対して匿名アクセスではなく 基本認証アクセスに変更してみると、アクセス権の テストが行いやすくなるかと思います。

puntoabart
質問者

お礼

ありがとうございます。 FileExistsは物理パスでしか使えないんだから、 "\\Server\share\~"の形式にすればいいんですね。 非常に役立ちました。 ASPは奥が深いですね…。

その他の回答 (2)

noname#86982
noname#86982
回答No.3

そのファイルはそのネットワーク上に公開されているものなのでしょうか?もしくは権限が必要だとか…。 そういった場合、エラーが起きることがあるのではないでしょうか? もしそうだった場合、そのPCに共有フォルダをつくり、そのフォルダの共有設定をしてやる必要があります。 そういうのを全部ご存知の上で、この質問を出したとしたら………ごめんなさい、蛇足です。 蛇足ついでに共有フォルダの作り方。 1.「コントロールパネル」-「ネットワーク」-「ネットワーク設定」タブで「Microsoftネットワーク共有サービス」が追加されていることを確認。 2.フォルダを適当なところに作る。 3.そのフォルダで マウス右ボタン -「共有...」 4.「共有タブで「共有する」を選ぶ。 自分で墓の穴掘り掘りしてる気が…(^^;

  • senna13
  • ベストアンサー率28% (67/237)
回答No.1

すごく単純な部分ではないかと思います。 ネットワークドライブへの検索ではなく、ネットワークに 繋がっているコンピュータの中のファイルになるので、 相手のマシン名の指定等をキチット行えばよろしいかと・・ \\マシン名\\フォルダー名\サブフォルダー名\ファイル名.xxx たぶん。 私達のASPでも同じような事をしていますが、上記のようにしています。

puntoabart
質問者

お礼

ありがとうございます。非常に役立ちました。 ASPはまだまだ奥が深いですね。

関連するQ&A

  • VBでの、パスの存在確認

    お世話になっています。 つまらない質問で申し訳ないのですが、 例えば、取得したパスが"C:\TEST\TEST2\"だったとします。 実際に上記パスが存在するのかを確認(判定)したいのですが、よい方法はないでしょうか!? ファイルの場合はFileExistsで確認できるようですが、パスについてもなにかご存知の方がおりましたらご回答願います。

  • UNCパスでファイルをコピーしたい

    VisualBasic.NET 2003で開発をしています。 同一ネットワーク内の他サーバよりUNCパスを使用してファイルを ローカル→サーバ、サーバ→ローカルにコピーしようとしているの ですが、うまく参照できません。 CopyFileAPIを使用しようとしたのですが、これではUNCパスが 参照できないようです。 UNCパスを使用して相互にコピーできる方法はないのでしょうか。 ちなみに、諸事情により、ネットワークドライブとして接続する ことはNGです。 (これができればCopyFileAPIでコピーできるのですが・・・)

  • 同じネットワーク上のPCのディスク容量をバッチで

    ローカルネットワーク上で複数のパソコンを管理しています。 それぞれのPCのOSやドライブ数、ドライブ名はバラバラで、それぞれにネットワークドライブを作成したりフリーソフトなどをインストールすることも不可能なため、バッチファイルを実行してそれぞれのマシンのディスク容量を確認したいと考えております。 バッチファイルの実行場所は自分の操作しているPC(ディスク容量を調べたいPCとは別だが、同じネットワーク上に存在するPC)で、IPアドレスなどで複数PCを指定して。全部のPCの総ディスク容量と使用中の容量が一目で分かる形が望ましいです。 ネット上で調べたりしてみましたが、素人なため分からないことばかりで、どなたかご教示いただけますと幸いです。

  • WindowsXP SP3を使用しているのですが、いつのまにか「ローカ

    WindowsXP SP3を使用しているのですが、いつのまにか「ローカルディスク(Q)」という謎のディスクが出来ていました。容量も不明で論理ディスクマネージャで確認してもドライブQは存在しないとでるのでどうやら架空のドライブだらしいのですが、削除する方法ありませんか?レジストリはいじれるのでなんでもいいので解消する方法教えてください!

  • ThisWorkbook.Pathについて

    Excel2007のテンプレートファイルxltmでThisWorkbook.Path を利用する場合、ネットワークドライブでのディレクトリを 取得できません。ローカルディレクトリでは問題がありませんが、 なにか設定が必要でしょうか。 computerA:\c:\testの場合  curD = ThisWorkbook.Pathはc:\\testしか取得できません。 ご教授をお願いします。 どうぞ、よろしくお願いします。

  • [asp/vbs]FileExistsのパスの指定方法について教えて下

    [asp/vbs]FileExistsのパスの指定方法について教えて下さい。 下記のような記述をした場合、インターネット上にファイルは存在しているのに 「無し」と判断されてしまいます。("ファイルがありません"と表示される) 表示されるという事はasp自体は動いているのでしょうが、肝心のパスの設定が わからない状態です。 <%@ Language=VBScript %> -------中略------- <% Set objFso = Server.CreateObject("Scripting.FileSystemObject") If objFso.FileExists("image/test.jpg") Then Response.Write "ファイルが存在します" End If Response.Write "ファイルがありません" %> このaspファイルが置かれているディレクトリ上にtest.jpgを置き、 If objFso.FileExists("test.jpg") Then と記述しても、やはり"ファイルがありません"と表示されてしまいます…。 また、フルパス(http://www~~test.jpg)と表示しても駄目でした。 おそらく根本的な問題だとは思うのですが、 どのように表記したら良いか、教えて頂けると助かります。

  • Access2003からAccess2010に変換

    Access2003で作られたあるアクセスのファイル、・・・・・・・.mdbがあるんですが、 これをAccess2010しか入っていないPCで開こうとすると、 「オブジェクト・・・・・が見つかりませんでした。オブジェクトが存在してあること、名前やパス名が正しいことを確認してください。・・・・・がローカルオブジェクトではない場合は、ネットワークの接続を確認するか、サーバー管理者に問い合わせてください。」 とでて開かれませんでした。どのすれば開かれるのかよろしくお願いします。

  • ファイルの存在確認をしたい

    複数のドメインを運用しています。 ドメインが違うため、同じレンタルサーバーの会社ですが、サーバーのマシンも別でファイル管理も別々の状態です。 つまり完全に他人同士のドメインという状態ではありますが、他ドメインのファイルが存在するか確認する方法を教えてください 同一ドメイン内であれば、相対パスでstatの[7]とか-fでファイル確認できるようですが、試しに絶対パスを入れてみましたが予想通りというか何も返ってきません。 ファイルサイズであったり、中身の取得は必要ありません。 単にファイルが存在するかどうかだけ確認できればいいのですが、ドメインを分けてしまっているために相対パスが使えません。 書きながら思いましたが、他サイトのファイルの存在確認となると悪用できるかもしれないので、やはりこういったものは存在しないのでしょうか。 とはいっても制限されているURL内のファイル確認ではなく普通にインターネットで閲覧できる状態のものを確認したいだけなのですが

    • ベストアンサー
    • Perl
  • FileSystemObjectでのパス名の取得

    お世話になります。 VBScriptでフォルダ内のファイルコピーのスクリプトを作っているのですが、FileSystemObjectを使用してネットワーク共有してある日本語のフォルダ名(Getfolder)を取得すると文字化けして取得できません。 Dim fso,fo set fso = CreateObject("Scripting.FileSystemObject") set fo = fso.getfolder(フォルダパス) WScript.Echo fo.path <---フォルダのパスを表示 なにか解決する方法はありますでしょうか? ちなみに、ローカルドライブの日本語フォルダは正常に取得できました。

  • ドキュメント類の運用・保存について

    ドキュメント類の運用・保存方法について 会社などでネットワークドライブを使用している場合 ローカルとネットワークドライブ、どちらで更新を行い、どちらにバックアップを取っておくべきなのでしょうか? 理由も併せてお願いします。 私の場合はネットワークドライブは他の人も参照する場所なので そこに保存しているファイルを更新し、常に最新版であるようにしています。 また特定のタイミングで、ローカルにバックアップを取っています。

専門家に質問してみよう