導航:首頁 > 編程語言 > 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監控遠程目錄是否新建文件相關的資料

熱點內容
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497
劉駿微信 瀏覽:113
書旗舊版本80 瀏覽:467
教編程考什麼證 瀏覽:990
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350
如何讓手機文件保存到電腦上 瀏覽:459
sa資料庫默認密碼是多少 瀏覽:191
電腦正在查找文件 瀏覽:541
一個文件盒省內寄順豐多少錢 瀏覽:41
誅仙62坐騎怎麼升級到63 瀏覽:926
linux以日期查看日誌記錄 瀏覽:446
工業大數據是什麼東西 瀏覽:881
魅族note3怎麼重置網路 瀏覽:510

友情鏈接