java.io.File对象能指定到另外一台机器上已知目录或其下文件吗(急,再线等)
我想访问另外一台机器上已知目录下是否有一已知时间以后的新文件。
管理员用户名和密码均已知
我看到File对象中有个构造函数:
File(URI uri)
好像可以,但我试了几下都不行
问题点数:0、回复次数:10Top
1 楼feiyuegaoshan(飞跃)回复于 2003-06-02 12:31:57 得分 0
没问题。你把协议指对了就可以了。
btw:file协议Top
2 楼ytdmm(相忘于江湖)回复于 2003-06-02 12:37:13 得分 0
不可以。
需要建立ServerSocket和Socket来传送文件,一端发送一端接收。Top
3 楼wyqiang(强)回复于 2003-06-02 12:58:19 得分 0
也许你用错了
我书上有个例题讲怎样访问本机上文件
它采用 args[0] 转数
我想你的问题是static 没用好吧
Top
4 楼JavaVirgin(java者)回复于 2003-06-02 13:04:11 得分 0
feiyuegaoshan:
以下是我得部分代码,帮我看看,哪儿写错了
访问10.128.1.3机器的d盘下(默认共享名为d$)mmWeb目录
user:administrator
pwd:11
....
URI u=new URI("file://administrator:11@10.128.1.3/d:/mmWeb");
File f = new File(u);
报错:
java.lang.IllegalArgumentException: URI has an authority component
at java.io.File.<init>(File.java:326)
at study.rmi.AccessToMailServer.hasNewFile(AccessToMailServer.java:18)
at study.rmi.AccessToMailServer.main(AccessToMailServer.java:28)
Exception in thread "main"
Top
5 楼JavaVirgin(java者)回复于 2003-06-02 13:05:54 得分 0
wyqiang:
访问本机的文件当然是很容易的了
:)Top
6 楼wyqiang(强)回复于 2003-06-02 13:06:36 得分 0
/** Displays one machine's status, for RMI.
*/
public class RMIPanel extends NetPanel implements Runnable {
public RMIPanel(String host, Properties p) {
super(host, p);
}
Example 22-7. NetWatch.java (continued)
22.6. PROGRAM: RMIWATCH 681
/** Keep the screen updated forever, unless stop()ped. */
public void run() {
String thePort = props.getProperty("rmiwatch.port", "");
String theURL = "rmi://" + hostName + ":" + thePort;
while (!done) {
try {
String[] names = Naming.list(theURL);
ta.setText("");
for (int i=0; i<names.length; i++) {
ta.append(i + ": " + names[i] + "\n");
}
// If we didn't get an exception, host is up.
String expect = props.getProperty("rmiwatch.expect");
String fullText = ta.getText();
if (fullText.length() == 0) {
ta.setText("(nothing registered!)");
setState(EMPTY);
} else if (expect != null && fullText.indexOf(expect)==-1) {
setState(DUBIOUS);
} else setState(FINE);
} catch (java.rmi.ConnectIOException e) {
setState(DOWN);
ta.setText("Net error: " + e.detail.getClass());
} catch (java.rmi.ConnectException e) {
setState(NOREG);
ta.setText("RMI error: " + e.getClass().getName() + "\n" +
" " + e.detail.getClass());
// System.err.println(hostName + ":" + e);
} catch (RemoteException e) {
setState(NOREG);
ta.setText("RMI error: " + e.getClass().getName() + "\n" +
" " + e.detail.getClass());
} catch (MalformedURLException e) {
setState(DOWN);
ta.setText("Invalid host: " + e.toString());
} finally {
// sleep() in "finally" so common "down" states don't bypass.
// Randomize time so we don't make net load bursty.
try {
Thread.sleep((int)(sleepTime * MSEC * 2 * Math.random()));
} catch (InterruptedException e) {
/*CANTHAPPEN*/
}
}
}
}
}
哪个例题比较好吧Top
7 楼wyqiang(强)回复于 2003-06-02 13:17:31 得分 0
to:vaVirgin(java者)
帮我解一下那道题吧
http://expert.csdn.net/Expert/topic/1856/1856034.xml?temp=.7418939Top
8 楼feiyuegaoshan(飞跃)回复于 2003-06-02 14:23:52 得分 0
举例如下:
public static void main(String[] args)
{
String url = "//hsqiang/helios/sun_helios.jpgr";
File file = new File(url);
if (file.exists())
{
System.out.println("existed!");
}
else
System.out.println("not found!");
}Top
9 楼JavaVirgin(java者)回复于 2003-06-02 15:09:50 得分 0
feiyuegaoshan:
我试了,没有权限验证的可以。
可是如果需要权限验证的话就不行了:
public static void main(String[] args)
{
String url = "//administrator:11@10.128.1.4/news/adduser.asp";
//如果写成String url=10.128.1.4/news/adduser.asp没问题
File file = new File(url);
if (file.exists())
{
System.out.println("existed!");
}
else
System.out.println("not found!");
}
输出为not found!
你能试一下怎样解决吗?还是我得url写的有问题?毕竟权限验证还是很需要的。
你用过java.net.uri对象吗?
分不够再给
Top
10 楼JavaVirgin(java者)回复于 2003-06-02 18:01:13 得分 0
hehe
upTop




