Windowsマシンから、同じくWindowsのファイルサーバにjava.io.Fileでアクセスすると、
Javaプログラムが走っているマシンにログインさせたユーザの権限で共有ファイルにアクセスする。
つまり、
ファイルサーバにAとBというディレクトリがあり、aさんでログインしたマシンではディレクトリAにアクセスでき、bさんでログインしたマシンからではディレクトリBにアクセスできるとする。
このとき、aさんでログインしたマシン上で動いてるJavaからはjava.io.FileでAにはアクセスできる。
ここで、aさんでログインした状態で、ディレクトリBにアクセスする方法のメモ
まず、java.io.Fileには認証機能が存在しないので、JCIFS(The Java CIFS Client Library)というライブラリをダウンロードし、クラスパスを通す必要がある。
jcifs.smb.SmbFileやjcifs.smb.SmbFileInputStreamなどは、java.io.Fileやjava.io.FileInputStreamと同じように扱える。
ここで、認証の仕方が2種類見つかったので、2つとも¢(. .。)メモメモ
<条件>
ディレクトリBのpath:¥¥fileserver¥B
fileserverのIP:192.168.0.1
bのユーザー名:hoge
bのパスワード:foo
+
上の例の条件
<方法①>
以上(笑)
これ以降は、jcifs.smb.SmbFileを使って、java.io.Fileと同じように、ディレクトリ内のファイルのリスト(SmbFile配列)を取得したり、ファイル名とかファイルサイズを取得したりする。
ちなみに、アクセス権の内ディレクトリにアクセスしようとすると、Exceptionが投げられる
また、SmbFileを使ってユーザbを認証している間は、SmbFileではAにアクセスできない。Fileではできる。
<方法②>
jcifs.smb.SmbFileの他にjcifs.Configを使って
<参考>
java:jcifs [Paulownia.jp]
試験管のなかのコード :: JCIFSにチャレンジ
Javaプログラムが走っているマシンにログインさせたユーザの権限で共有ファイルにアクセスする。
つまり、
ファイルサーバにAとBというディレクトリがあり、aさんでログインしたマシンではディレクトリAにアクセスでき、bさんでログインしたマシンからではディレクトリBにアクセスできるとする。
このとき、aさんでログインしたマシン上で動いてるJavaからはjava.io.FileでAにはアクセスできる。
ここで、aさんでログインした状態で、ディレクトリBにアクセスする方法のメモ
まず、java.io.Fileには認証機能が存在しないので、JCIFS(The Java CIFS Client Library)というライブラリをダウンロードし、クラスパスを通す必要がある。
jcifs.smb.SmbFileやjcifs.smb.SmbFileInputStreamなどは、java.io.Fileやjava.io.FileInputStreamと同じように扱える。
ここで、認証の仕方が2種類見つかったので、2つとも¢(. .。)メモメモ
<条件>
ディレクトリBのpath:¥¥fileserver¥B
fileserverのIP:192.168.0.1
bのユーザー名:hoge
bのパスワード:foo
+
上の例の条件
<方法①>
以上(笑)
これ以降は、jcifs.smb.SmbFileを使って、java.io.Fileと同じように、ディレクトリ内のファイルのリスト(SmbFile配列)を取得したり、ファイル名とかファイルサイズを取得したりする。
ちなみに、アクセス権の内ディレクトリにアクセスしようとすると、Exceptionが投げられる
また、SmbFileを使ってユーザbを認証している間は、SmbFileではAにアクセスできない。Fileではできる。
<方法②>
jcifs.smb.SmbFileの他にjcifs.Configを使って
<参考>
java:jcifs [Paulownia.jp]
試験管のなかのコード :: JCIFSにチャレンジ