导航:首页 > 编程语言 > java监控远程目录是否新建文件

java监控远程目录是否新建文件

发布时间:2023-09-10 05:10:07

java 怎么判断远程服务器上某个文件是否存在

如果你的JAVA部署的tomcat,就是你要查找文件的服务器,那就用:
File file = new File("文件路径")。

如果你本地的版JAVA想要访问远权程的一个服务器的文件是否存在,就得用如下方法:

URL url = new URL(“文件路径:可以是本地服务器的路径,也可以是远程服务器的路径”);
HttpURLConnection urlcon = (HttpURLConnection) url.openConnection();
//message = urlcon.getHeaderField(0);
//文件存在‘HTTP/1.1 200 OK’ 文件不存在 ‘HTTP/1.1 404 Not Found’
Long TotalSize=Long.parseLong(urlcon.getHeaderField("Content-Length"));
if (TotalSize>0){
return true;
}else{
return false;
}

㈡ java如何在linux下监听某个目录下是否有文件改变

JDK 7 的nio2 WatchService可以监听文件系统

Oracle官方教程链接 http://docs.oracle.com/javase/tutorial/essential/io/notification.html

样例代码

importstaticjava.nio.file.StandardWatchEventKinds.*;
Pathpath=Paths.get("/home");
WatchServicewatchService=FileSystems.getDefault().newWatchService();
WatchKeywatchKey=path.register(watchService,ENTRY_CREATE,ENTRY_DELETE,ENTRY_MODIFY);
/*
privatebooleannotDone=true;
while(notDone){
try{
WatchKeywatchKey=watchService.poll(60,TimeUnit.SECONDS);
List<WatchEvent.Kind<?>>events=watchKey.pollEvents();
for(WatchEventevent:events){
//.register
PathwatchedPath=(Path)watchKey.watchable();
//returnstheeventtype
=event.kind();
//returnsthecontextoftheevent
Pathtarget=(Path)event.context();
}
if(!watchKey.reset()){
...handlesituationnolongervalid
}
}catch(InterruptedExceptione){
Thread.currentThread().interrupt();
}
}
*/

㈢ Java中怎样根据文件的路径去判断该文件夹中是否存在该文件

1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。

原因是:

(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。

(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。

2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。

所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;

import java.io.File;

import java.io.IOException;

public class Main {

public static void main(String[] args) {

File file = new File("d:\test_file.txt");

Main.judeFileExists(file);

File dir = new File("d:\test_dir");

Main.judeDirExists(dir);

}// 判断文件是否存在

public static void judeFileExists(File file) {

if (file.exists()) {

System.out.println("file exists");

} else {

System.out.println("file not exists, create it ...");

try {

file.createNewFile();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

} // 判断文件夹是否存在

public static void judeDirExists(File file) {

if (file.exists()) {

if (file.isDirectory()) {

System.out.println("dir exists");

} else {

System.out.println("the same name file exists, can not create dir");

} }

else { System.out.println("dir not exists, create it ...");

file.mkdir();

}

}

}

然后再通过file.isDirectory()来判断这是不是一个文件夹。

㈣ java如何判断给定目录下,是否存在指定的文件夹和文件

publicstaticvoidfind(Filef){
if(!f.isDirectory()||f.listFiles().length<=0)
return;
File[]files=f.listFiles();
for(Filefile:files){
if(file.isFile()){
//System.out.println("got:"+file.getName());
if(file.getName().equals("test111.txt")){
System.out.println(file);
}
}else{
//System.out.println("got:"+file.getName());
if(file.getName().equals("test11")){
System.out.println(file);
}
find(file);//这个不能放进里
}
}
}

㈤ Java判断文件夹是否存在,不存在就创建

方法如下:

public static void judeDirExists(File file)

if (file.exists()) if (file.isDirectory())

System.out.println("dir exists"); }

else System.out.println("the same name file exists, can not create dir"); }41

else System.out.println("dir not exists, create it ..."); 、来

file.mkdir();

㈥ java实时监控局域网共享文件夹并复制文件到指定位置

呵呵,这个要求有点高,只能给个思路:
1、监视A文件夹,这个有两个方式:
a、可以开启一内个线程,定时容扫描A文件夹,此方式适用于JDK所有版本
b、从JDK7开始,通过WatchService、WatchKey等可以监听文件夹变化。
2、从A移动到B:保证A目录可读,B目录可写,然后用FileInputStream和FileOutputStream即可。
3、确保从A到B:这个可以从网上找一些计算文档摘要的工具,移动后计算A、B文件夹中文档的摘要,检查是否移动成功。 a、可以开启一个线程,定时扫描

㈦ Java 如何监控文件目录的变化

JavaSE 1.7提供了相关的API,去监视文件或者文件夹的变动,主要的API都在java.nio.file下面,其大概流程如下:

packageorg.xdemo.superutil.j2se.filewatch;

importstaticjava.nio.file.LinkOption.NOFOLLOW_LINKS;

importjava.io.File;
importjava.io.IOException;
importjava.nio.file.FileSystems;
importjava.nio.file.FileVisitResult;
importjava.nio.file.Files;
importjava.nio.file.Path;
importjava.nio.file.Paths;
importjava.nio.file.SimpleFileVisitor;
importjava.nio.file.StandardWatchEventKinds;
importjava.nio.file.WatchEvent;
importjava.nio.file.WatchEvent.Kind;
importjava.nio.file.WatchKey;
importjava.nio.file.WatchService;
importjava.nio.file.attribute.BasicFileAttributes;
importjava.util.HashMap;
importjava.util.Map;

/**
*文件夹监控
*
*@authorGoofy<ahref="http://www.xdemo.org/">http://www.xdemo.org/</a>
*@Date2015年7月3日上午9:21:33
*/
publicclassWatchDir{

;
privatefinalMap<WatchKey,Path>keys;
privatefinalbooleansubDir;

/**
*构造方法
*
*@paramfile
*文件目录,不可以是文件
*@paramsubDir
*@throwsException
*/
publicWatchDir(Filefile,booleansubDir,FileActionCallbackcallback)throwsException{
if(!file.isDirectory())
thrownewException(file.getAbsolutePath()+"isnotadirectory!");

this.watcher=FileSystems.getDefault().newWatchService();
this.keys=newHashMap<WatchKey,Path>();
this.subDir=subDir;

Pathdir=Paths.get(file.getAbsolutePath());

if(subDir){
registerAll(dir);
}else{
register(dir);
}
processEvents(callback);
}

@SuppressWarnings("unchecked")
static<T>WatchEvent<T>cast(WatchEvent<?>event){
return(WatchEvent<T>)event;
}

/**
*观察指定的目录
*
*@paramdir
*@throwsIOException
*/
privatevoidregister(Pathdir)throwsIOException{
WatchKeykey=dir.register(watcher,StandardWatchEventKinds.ENTRY_CREATE,StandardWatchEventKinds.ENTRY_DELETE,StandardWatchEventKinds.ENTRY_MODIFY);
keys.put(key,dir);
}

/**
*观察指定的目录,并且包括子目录
*/
privatevoidregisterAll(finalPathstart)throwsIOException{
Files.walkFileTree(start,newSimpleFileVisitor<Path>(){
@Override
(Pathdir,BasicFileAttributesattrs)throwsIOException{
register(dir);
returnFileVisitResult.CONTINUE;
}
});
}

/**
*发生文件变化的回调函数
*/
@SuppressWarnings("rawtypes")
voidprocessEvents(FileActionCallbackcallback){
for(;;){
WatchKeykey;
try{
key=watcher.take();
}catch(InterruptedExceptionx){
return;
}
Pathdir=keys.get(key);
if(dir==null){
System.err.println("操作未识别");
continue;
}

for(WatchEvent<?>event:key.pollEvents()){
Kindkind=event.kind();

//事件可能丢失或遗弃
if(kind==StandardWatchEventKinds.OVERFLOW){
continue;
}

//目录内的变化可能是文件或者目录
WatchEvent<Path>ev=cast(event);
Pathname=ev.context();
Pathchild=dir.resolve(name);
Filefile=child.toFile();
if(kind.name().equals(FileAction.DELETE.getValue())){
callback.delete(file);
}elseif(kind.name().equals(FileAction.CREATE.getValue())){
callback.create(file);
}elseif(kind.name().equals(FileAction.MODIFY.getValue())){
callback.modify(file);
}else{
continue;
}

//ifdirectoryiscreated,andwatchingrecursively,then
//registeritanditssub-directories
if(subDir&&(kind==StandardWatchEventKinds.ENTRY_CREATE)){
try{
if(Files.isDirectory(child,NOFOLLOW_LINKS)){
registerAll(child);
}
}catch(IOExceptionx){
//ignoretokeepsamplereadbale
}
}
}

booleanvalid=key.reset();
if(!valid){
//移除不可访问的目录
//因为有可能目录被移除,就会无法访问
keys.remove(key);
//如果待监控的目录都不存在了,就中断执行
if(keys.isEmpty()){
break;
}
}
}
}

}

㈧ Java判断文件夹是否存在,不存在就创建

用File类中的exists()方法判断是否存在;

用File类中的mkdirs创建文件目录;

java代码如下:

publicFilegetFile(Filefile){

//判断文件夹是否存在
if(!file.exists()){

//不存在,则创建文件夹
file.mkdirs();
}

returnfile;
}

注意:

1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。

原因是:

(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。

2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。

所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;

(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。

所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;

然后再通过file.isDirectory()来判断这是不是一个文件夹。

import java.io.File;

import java.io.IOException;


public class Main {


public static void main(String[] args) {


File file = new File("d:\test_file.txt");

Main.judeFileExists(file);


File dir = new File("d:\test_dir");

Main.judeDirExists(dir);

}


// 判断文件是否存在

public static void judeFileExists(File file) {


if (file.exists()) {

System.out.println("file exists");

} else {

System.out.println("file not exists, create it ...");

try {

file.createNewFile();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}


// 判断文件夹是否存在

public static void judeDirExists(File file) {


if (file.exists()) {

if (file.isDirectory()) {

System.out.println("dir exists");

} else {

System.out.println("the same name file exists, can not create dir");

}

} else {

System.out.println("dir not exists, create it ...");

file.mkdir();

}


}


}

㈨ 用ReadDirectoryChangesW监控目录,怎么知道目录下增加的是文件夹还是文件

在第五个参数判断:
DWORD dwNotifyFilter;

当值为:FILE_NOTIFY_CHANGE_FILE_NAME时,修改的是回文件
当值为:FILE_NOTIFY_CHANGE_DIR_NAME 时,修改的是目录答

阅读全文

与java监控远程目录是否新建文件相关的资料

热点内容
linux连接ftp 浏览:512
es文件浏览器视频笔记 浏览:874
mac无法打开描述文件 浏览:134
什么软件打文件 浏览:53
数据库无数据变成0 浏览:899
名企笔试如何刷编程题 浏览:49
js跳到页面某地 浏览:550
jsp展示clob字段 浏览:779
nyx在网络上是什么意思 浏览:145
乐播农业app是什么 浏览:530
编程框架如何开发 浏览:136
金庸群侠传3修改代码 浏览:712
检察院的文件类别有哪些 浏览:793
怎么把九游残留数据删除 浏览:828
有什么女生主动聊天的app 浏览:436
有哪些可以督促自己的app 浏览:244
用USB传输视频文件夹显示为空 浏览:710
恢复文件软件免费版手机 浏览:648
lg怎么隐藏文件 浏览:836
苹果免费读书app推荐 浏览:497

友情链接