|
みなさまレスありがとうございます!!
しかしまだ完成しておりません。
知識不足で大変申し訳ないのですが、さらに教えていただけませんか?
【渋木宏明(ひどり) 様】
>が、そもそもリモートPCで「共有」に設定していないフォルダを外部から参照することは出来ません。
>その辺は理解しているでしょうか?
もちろん共有に設定しています。
>共有フォルダ配下のファイルを参照しようとしているのであれば、おそらくそのリモートPCに「接続」し>てないからファイルが見えないんでしょう。
>.NET の標準ライブラリでは「接続」を直接行うことはできません。
>WMI で出来るかもしれませんが、そうでなければ API を使うことになります。
WMI接続をしようとしているのですが、書き方がわからず困っています。
他の場所で、リモートPCのドライブ容量を取得しているのでそこに処理を入れようかと思い、色々調べたのですがわかりません。
下記のような感じで書けたらなと思っていますが・・・
//WMI接続を確立する
options = new ConnectionOptions();
pcpass = "\\\\" + servername + "\\root\\cimv2";
//リモートコンピュータ上の名前空間に接続
ManagementScope scope = new ManagementScope(pcpass);
scope.Connect();
ObjectQuery query = new ObjectQuery
("SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3");
//上記のWQLクエリに合致するものを取得
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
//WMI を通じて管理オブジェクトを取得
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
//総容量
long ドライブ総容量 = long.Parse("" + m["Size"]);
//この下あたりに入れる??(ファイルの指定方法がわからず変ですが・・・)
//Cドライブ配下の「a.txt」のファイルが存在するかどうか調べたいです。
string file = m + @"\a.txt";
if (File.Exists(file))
{
batresult = " ファイルがあります";
}
else
{
batresult = " ファイルはありません";
}
}
【魔界の仮面弁士様】
>相手側の PC に、『C』という共有名(≠ドライブ名)のディレクトリが無いか、
>または、その共有ディレクトリに対するアクセス権が不足しているのでしょう。
共有名も間違えておらず、アクセス権も不足していません。
合ってるということは、こちらのネットワークの問題なのかもしれません。。。
【ちゃっぴ様】
>そもそも、何で確認が必要なの?
実はリモートPCとはサーバのことで、あるバッチジョブを実行しています。
その後正常終了であればファイルをはきだすのですが、異常終了ならばファイルははきだされません。
その確認の為にファイルの存在確認をしようとしています。
以上長々と色々書いてしまいましたがよろしくお願いいたします。
|