Oct 08, 2005
JCIFS にチャレンジ
JCIFS とは
JCIFS は CIFS/SMB の Java 用ライブラリ。 要するに Java から Windows のファイルシステムにアクセスできる。
- JCIFS
- http://jcifs.samba.org/
JCIFS の実行環境構築
- JCIFS(jcifs-1.2.6.jar) をクラスパスに追加
サンプルコード
package jp.in_vitro.codelets.jcifs;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Date;
import java.util.Properties;
import jcifs.Config;
import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
public class Codelet {
public Codelet() {
super();
}
public static void main(final String[] args) throws Exception {
Codelet me = new Codelet();
me.initializeJcifs();
me.printFileList("smb://myclient/c$/");
me.printFile("smb://myclient/SharedDocs/tmp.txt");
}
protected void initializeJcifs() {
Config.setProperties(this.prepareSystemConfiguration());
}
protected Properties prepareSystemConfiguration() {
Properties props = new Properties();
props.setProperty("jcifs.netbios.wins", "192.168.1.1");
props.setProperty("jcifs.smb.client.username", "myname");
props.setProperty("jcifs.smb.client.password", "mypassword");
return props;
}
public void printFileList(final String target)
throws MalformedURLException, SmbException {
SmbFile dir = new SmbFile(target);
if (!dir.isDirectory()) {
return;
}
SmbFile[] children = dir.listFiles();
for (SmbFile child : children) {
if (child.isDirectory()) {
System.out.print("[DIR]");
}
System.out.print(" ");
System.out.print("" + child.getCanonicalPath());
System.out.print(" ");
System.out.print("" + new Date(child.getDate()));
System.out.println();
}
}
public void printFile(final String target) throws IOException {
SmbFileInputStream in = new SmbFileInputStream(target);
int ch = 0;
while ((ch = in.read()) >= 0) {
System.out.print("" + (char) ch);
}
}
}
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Library/20051008_01.trackback
writeback message: Ready to post a comment.
