C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: M_DataFileのファイルの中身を取得したい


(過去ログ 134 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■79335 / inTopicNo.1)  M_DataFileのファイルの中身を取得したい
  
□投稿者/ マリ (1回)-(2016/03/22(Tue) 18:21:39)

分類:[VB.NET/VB2005 以降] 

ネットワーク上で共有アクセスできないファイルの取得方法を探しています

WMIのCIM_DataFileを使用してファイル名、パス、サイズを取得することが出来きましたが
ファイルの中身を取得することが出来なくて困っています

Copyメソッドで一時的に共有アクセスできる場所にコピーして取得も考えたのですが
直接取得できる方法があればと思い相談しました

VisualStudio 2005
引用返信 編集キー/
■79337 / inTopicNo.2)  Re[1]: M_DataFileのファイルの中身を取得したい
□投稿者/ Azulean (619回)-(2016/03/22(Tue) 21:56:21)
No79335 (マリ さん) に返信
> ネットワーク上で共有アクセスできないファイルの取得方法を探しています

アクセス許可として、フォルダーの一覧表示のアクセス許可があるだけで、読み取りアクセス許可がないのであれば、方法はありません。
(それができると、アクセス許可の意味がないため)


エクスプローラーでも同様なのですよね?
そうであれば、方法はないとお考えいただいた方が良いかと思います。
引用返信 編集キー/
■79346 / inTopicNo.3)  Re[2]: M_DataFileのファイルの中身を取得したい
□投稿者/ マリ (2回)-(2016/03/23(Wed) 11:49:11)
No79337 (Azulean さん) に返信

ありがとうございます
書き方が悪くてすみません
ファイルに対しては読み取りのアクセス権限はありました
ただ共有化してない場所にあるファイルなので
UNCパスでのアクセスでファイルを取得できなくて困っています

CIM_DataFileにファイルの中身を取得するメソッドがあればいいのですが

引用返信 編集キー/
■79348 / inTopicNo.4)  Re[3]: M_DataFileのファイルの中身を取得したい
□投稿者/ とっちゃん (342回)-(2016/03/23(Wed) 13:52:44)
No79346 (マリ さん) に返信
> ファイルに対しては読み取りのアクセス権限はありました
これは、そのファイルシステム上のアクセス権ですよね?

> ただ共有化してない場所にあるファイルなので
> UNCパスでのアクセスでファイルを取得できなくて困っています

共有になっていないということは、外部アクセスが可能になっていない
ということになります。

> CIM_DataFileにファイルの中身を取得するメソッドがあればいいのですが
>
CIM_DataFile を使う場合でもそうではない場合でも
マシンの外側から直接アクセスするには、
そのファイルに直接アクセス可能な権限を与える必要があります。

Windows の場合、ファイルに外部アクセスを可能にするには
該当フォルダかその親のフォルダを共有して、外部アクセス可能な
権限を与える必要があります。

それ以外では、そのマシンの中から、ファイルの内容を読み取って
そのデータを返す仕組み(Webサーバーや、FTPサーバーが行っているような方法)を
使って取り出すことになります。

引用返信 編集キー/
■79349 / inTopicNo.5)  Re[4]: M_DataFileのファイルの中身を取得したい
□投稿者/ マリ (3回)-(2016/03/23(Wed) 14:08:39)
No79348 (とっちゃん さん) に返信

ありがとうございます

CIM_DataFileにて情報を取得できるということはアクセス権限があるということでよろしいでしょうか?
そういうことであれば私の対象ファイルへアクセスできないと思っていることが勘違いかもしれません

もう一度UNCパスにてアクセスできるか確認します

解決済み
引用返信 編集キー/
■79350 / inTopicNo.6)  Re[5]: M_DataFileのファイルの中身を取得したい
□投稿者/ とっちゃん (343回)-(2016/03/23(Wed) 14:36:53)
No79349 (マリ さん) に返信
> ■No79348 (とっちゃん さん) に返信
> CIM_DataFileにて情報を取得できるということはアクセス権限があるということでよろしいでしょうか?

あ、前回の書き方に問題がありますね。
CIM_DataFile オブジェクトは、ローカルストレージ参照のオブジェクトです。
ネットワーク越しの別PC(LAN内にあるかどうかはあまり関係ない)の情報を取り出せているとしても
それはリモート接続して接続先PC内の WMI ホストにCIM_DataFile を作ってもらっているからとなります。
(接続にそれなりの権限が必要だったはずです)

CIM_DataFile を作るために渡した情報をよく調べてみてください。
その情報は、UNCパスではなく、「接続先PC」と「接続先PCの中から見た場合のファイルパス」
になっていませんでしたか?

> そういうことであれば私の対象ファイルへアクセスできないと思っていることが勘違いかもしれません
>
> もう一度UNCパスにてアクセスできるか確認します
>
なので、勘違いはしていると思いますが、そもそも見てる位置関係が異なっているというところが
大元になっているので、UNC云々で解決するものではありません。

ちなみに、CIM_DataFile.Copy などで渡すファイル名(パス)もその接続先のマシンでローカルに見たときに
書き込み可能なパス名となります。

ここに、接続元からもアクセス可能なパス名(書き込み可能なら共有フォルダを対象としてもよい)を渡して
コピーしてもらえば、たぶん参照できるようになります。

この辺、自分じゃ使ってないので、机上の知識でしかありませんが...

#解決済みにしているのでチェックはつけたままにしておきます
解決済み
引用返信 編集キー/
■79351 / inTopicNo.7)  Re[6]: M_DataFileのファイルの中身を取得したい
□投稿者/ マリ (4回)-(2016/03/23(Wed) 15:58:34)
No79350 (とっちゃん さん) に返信

詳しい解説ありがとうございます

>その情報は、UNCパスではなく、「接続先PC」と「接続先PCの中から見た場合のファイルパス」
>になっていませんでしたか?

  ご指摘の通りローカルパスで情報を取得しています

>ちなみに、CIM_DataFile.Copy などで渡すファイル名(パス)もその接続先のマシンでローカルに見たときに
>書き込み可能なパス名となります。

  Copyメソッドを使用して共有フォルダにて作業することにします

>この辺、自分じゃ使ってないので、机上の知識でしかありませんが...

  こちらで確認したところ、とっちゃんさんの説明に間違いはありません
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -