



付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
/前言:在我寫這篇文章之前,我說說我的碰到這個問題的起因。公司讓我寫一個jar包,需要獲得指定文件的創(chuàng)建日期(日期必須是完整地年月日時分秒)。對于javajdk1.7來說很容易,因為1.7給了我們獲得創(chuàng)建日期的接口。但是對于jdk1.6來說,那就是一個老大難,沒有提供,只提供了獲得最后修改日期的接口。個人收集整理勿做商業(yè)用途對于jdk1.6,當(dāng)然我也查過,請教過好多人,給出了解決辦法,那就是使用Java的Runtime去調(diào)用當(dāng)前操作系統(tǒng)的指令獲得文件的創(chuàng)建日期:個人收集整理勿做商業(yè)用途例如在windows下,publicStringgetFileCreateDate(File_file){Filefile=_file;
try{
Processls_proc=Runtime.getRuntime().exec(
"cmd.exe/cdir"+file.getAbsolutePath()+"/tc");
個人收集整理勿做商業(yè)用途BufferedReaderbr=newBufferedReader(newInputStreamReader(ls_proc.getInputStream()));
個人收集整理勿做商業(yè)用途for(inti=0;i<5;i++){
br.readLine();
}
Stringstuff=br.readLine();
StringTokenizerst=newStringTokenizer(stuff);
StringdateC=st.nextToken();
Stringtime=st.nextToken();
Stringdatetime=dateC.concat(time);
SimpleDateFormatformatter1=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
個人收集整理勿做商業(yè)用途SimpleDateFormatformatter2=newSimpleDateFormat(
個人收集整理勿做商業(yè)用途"yyyy/MM/ddHH:mm");
datetime=formatter1.format(formatter2.parse(datetime));
個人收集整理勿做商業(yè)用途
br.close();
returndatetime;
}catch(Exceptione){
returnnull;
}
}引用:/question/535215288.html但是這個方法只能或得到文件的年月日時分,不能獲得到秒。為了獲得到秒,最后使用了jni。步驟:1、使用c和C++寫一個獲得文件創(chuàng)建時間的類#pragmaonce//Modifythefollowingdefinesifyouhavetotargetaplatformpriortotheonesspecifiedbelow.//RefertoMSDNforthelatestinfooncorrespondingvaluesfordifferentplatforms.#ifndefWINVER//AllowuseoffeaturesspecifictoWindowsXPorlater.#defineWINVER0x0501//ChangethistotheappropriatevaluetotargetotherversionsofWindows.#endif#ifndef_WIN32_WINNT//AllowuseoffeaturesspecifictoWindowsXPorlater.#define_WIN32_WINNT0x0501//ChangethistotheappropriatevaluetotargetotherversionsofWindows.#endif#ifndef_WIN32_WINDOWS//AllowuseoffeaturesspecifictoWindows98orlater.#define_WIN32_WINDOWS0x0410//ChangethistotheappropriatevaluetotargetWindowsMeorlater.#endif#ifndef_WIN32_IE//AllowuseoffeaturesspecifictoIE6.0orlater.#define_WIN32_IE0x0600//ChangethistotheappropriatevaluetotargetotherversionsofIE.#endif#defineWIN32_LEAN_AND_MEAN//Excluderarely-usedstufffromWindowsheaders//WindowsHeaderFiles:#include<windows.h>個人收集整理勿做商業(yè)用途
//WinFileTime.cpp:DefinestheentrypointfortheDLLapplication.//#include"stdafx.h"#include"FileClass/FileTimeEx.h"#ifdef_MANAGED#pragmamanaged(push,off)#endifBOOLAPIENTRYDllMain(HMODULEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){returnTRUE;}JNIEXPORTjstringJNICALLJava_checkfile_WinFileTime_getFileCreationTime(JNIEnv*env,jobjectcls,jstringFileName){HANDLEhFile;FILETIMEcreationTime;FILETIMElastAccessTime;FILETIMElastWriteTime;FILETIMEcreationLocalTime;SYSTEMTIMEcreationSystemTime;jstringresult;charfileTimeString[30];hFile=CreateFileA((char*)env->GetStringUTFChars(FileName,0),GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);if(hFile==INVALID_HANDLE_VALUE)returnenv->NewStringUTF("");if(GetFileTime(hFile,&creationTime,&lastAccessTime,&lastWriteTime)){if(FileTimeToLocalFileTime(&creationTime,&creationLocalTime)){if(FileTimeToSystemTime(&creationLocalTime,&creationSystemTime)){sprintf_s(fileTimeString,"d-d-dd:d:d\0",creationSystemTime.wYear,creationSystemTime.wMonth,creationSystemTime.wDay,creationSystemTime.wHour,creationSystemTime.wMinute,creationSystemTime.wSecond),result=env->NewStringUTF(fileTimeString);}elseresult=env->NewStringUTF("");}elseresult=env->NewStringUTF("");}elseresult=env->NewStringUTF("");CloseHandle(hFile);returnresult;}#ifdef_MANAGED#pragmamanaged(pop)#endif個人收集整理勿做商業(yè)用途2、然后生成動態(tài)鏈接文件(*.dll),將這個文件放到C:\Windows\System32和你的javajdk目錄下D:\ProgramFiles\Java\jdk1.6.0_18\jre\bin。個人收集整理勿做商業(yè)用途3、java文件中寫法publicfinalclassWinFileTime{static{System.loadLibrary("WinFileTime");}privatestaticnativeStringgetFileCreationTime(StringfileName);publicstaticStringgetCreationTime(StringfileName){returngetFileCreationTime(fileName);}}}個人收集整理勿做商業(yè)用途注意:頭文件與類文件的方法名必須與java中的類名一直,如:c中是Java_checkfile_WinFileTime_getFileCreationTime,那么java中就是checkfile.WinFileTime.getFileCreationTime(checkfile是包名,WinFileTime是類名,getFileCreationTime是方法名).個人收集整理勿做商業(yè)用途jdk1.7方法:下載一個jdk1.7幫助文檔,看看這個類BasicFileAttributeView。Pathpath=Paths.get(filePath);
BasicFileAttributeViewbasicview=Files.getFi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新材料科學(xué)與工程考試試卷及答案
- 外科術(shù)后引流管的護理
- 2025年社會心理學(xué)基礎(chǔ)知識考試試卷及答案
- 2025年旅游策劃與管理專業(yè)考試試題及答案
- 2025年計算機等級考試綜合能力試卷及答案
- 2025年海洋科學(xué)與技術(shù)基礎(chǔ)知識測試試題及答案
- 2025年機器人技術(shù)與應(yīng)用能力測試試題及答案
- 2025年中醫(yī)藥學(xué)基礎(chǔ)知識與實踐考試試題及答案
- 2025年電子信息工程專業(yè)畢業(yè)設(shè)計答辯試題及答案
- 農(nóng)產(chǎn)品溯源升級2025年農(nóng)產(chǎn)品質(zhì)量安全追溯體系建設(shè)實施方案標(biāo)準(zhǔn)制定研究
- 2022-2023學(xué)年河南省鄭州市高一下學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 霍尼韋爾空氣凈化器說明書kj550
- 在線網(wǎng)課知慧《流行病學(xué)與循證醫(yī)學(xué)(山盟-山東第一醫(yī)科大學(xué))》單元測試考核答案
- 企業(yè)使用危險化學(xué)品分裝作業(yè)安全管理指引
- 酥餅行業(yè)分析
- 《樹莓派應(yīng)用開發(fā)》課件 第03、4章-樹莓派操作基礎(chǔ)、樹莓派常用命令
- 消化系統(tǒng)疾病的病史采集與評估
- 安徽省小餐飲信息公示卡注銷申請表【模板】
- NB-T 47013.7-2012(JB-T 4730.7) 4730.7 承壓設(shè)備無損檢測 第7部分:目視檢測
- 危大工程專項方案驗收記錄表(基坑、模版、腳手架)
- JCT796-2013 回彈儀評定燒結(jié)普通磚強度等級的方法
評論
0/150
提交評論