第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

檢查文件是否已打開

檢查文件是否已打開

慕慕森 2019-07-11 10:24:23
檢查文件是否已打開我需要寫一個(gè)自定義批文件重命名器。我已經(jīng)完成了大部分工作,但我不知道如何檢查文件是否已經(jīng)打開。我只是用java.io.File包,還有一個(gè)canWrite()方法,但這似乎并不測試該文件是否正在被另一個(gè)程序使用。有什么辦法讓我做到這一點(diǎn)嗎?
查看完整描述

3 回答

?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

整個(gè)問題充滿了可移植性問題和種族條件:

  • 您可以嘗試使用FileLock,但操作系統(tǒng)和/或文件系統(tǒng)不一定支持它。
  • 在Windows上,如果另一個(gè)應(yīng)用程序以特定方式打開文件,則可能無法使用FileLock。
  • 即使你真的設(shè)法用

    FileLock

    或者其他問題,您仍然會(huì)遇到這樣的問題,即在測試文件和重命名之間可能會(huì)有一些東西出現(xiàn)并打開文件。

一個(gè)簡單但不可移植的解決方案是嘗試重命名(或您想要做的任何事情),并診斷返回值和/或任何因打開文件而產(chǎn)生的Java異常。

注:

  1. 如果您使用FilesAPI而不是FileAPI在發(fā)生故障時(shí)將獲得更多信息。

  2. 在允許重命名已鎖定或打開的文件的系統(tǒng)(例如Linux)上,您不會(huì)獲得任何失敗結(jié)果或異常。手術(shù)會(huì)成功的。但是,在這樣的系統(tǒng)上,您通常不需要擔(dān)心文件是否已經(jīng)打開,因?yàn)椴僮飨到y(tǒng)不會(huì)鎖定打開的文件。


查看完整回答
反對 回復(fù) 2019-07-11
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

 //  TO CHECK WHETHER A FILE IS OPENED 
    //  OR NOT (not for .txt files)

    //  the file we want to check
    String fileName = "C:\\Text.xlsx";
    File file = new File(fileName);

    // try to rename the file with the same name
    File sameFileName = new File(fileName);

    if(file.renameTo(sameFileName)){
        // if the file is renamed
        System.out.println("file is closed");    
    }else{
        // if the file didnt accept the renaming operation
        System.out.println("file is opened");
    }


查看完整回答
反對 回復(fù) 2019-07-11
  • 3 回答
  • 0 關(guān)注
  • 350 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號