자바 작업 파일 (클립) 의 몇 가지 코드
1. 디스크 에서 가장 큰 공간 을 차지 하 는 파일 찾기 (폴 더)
주어진 경로 의 모든 정 보 를 가 져 옵 니 다: 경 로 는 "X:\\"또는 "X:/"형식 이 어야 합 니 다.
- /**
- *
- * @param absolutepath
- */
- public void getPathInfo(String absolutepath){
- String path=absolutepath;
- File file=new File(absolutepath);
- NumberFormat nf=NumberFormat.getInstance();
- nf.setMaximumFractionDigits(2);
- long[] longNum=new long[100000];
- System.out.println("【 】:"+path.substring(0,1)+"\r"+"【 】:"+file.getTotalSpace()/1000000.00D+"MB"+" :"+nf.format(file.getTotalSpace()/1000000000.00D)+"GB");
- System.out.println("【 】:"+nf.format(file.getFreeSpace()/1000000.00D)+"MB"+" :"+nf.format(file.getFreeSpace()/1000000000.00D)+"GB");
- int len=0; //
- int isHidden=0; //
- int isDirectory=0; //
- int isFile=0; //
- File[] files=file.listFiles(); // File
- for(int i=0;i
- if(files[i].isDirectory()){
- isDirectory+=1;
- }else if(files[i].isFile()){
- isFile+=1;
- }else if(files[i].isHidden()){
- isHidden+=1;
- }
- len+=1;
- }
- System.out.println("【 】:"+len+" ");
- System.out.println("【 】:"+isDirectory+" ");
- System.out.println("【 】:"+isFile+" ");
- System.out.println("【 】:"+isHidden+" "+"\r"+"【 】:");
- for(int i=0;i
- if(files[i].isDirectory()){
- System.out.println("[ ]:"+files[i].getName()+
- " :"
- +nf.format((new FileTest().calcDirectorySize(new File(files[i].getAbsolutePath())))/1000000.00D)+"MB");
- longNum[i]=new FileTest().calcDirectorySize(new File(files[i].getAbsolutePath()));
- }else if(files[i].isFile()){
- System.out.println("[ ]:"+files[i].getName());
- }else if(files[i].isHidden()){
- System.out.println("[ ]:"+files[i].getName());
- }
- }
- System.err.println(" :"+new FileTest().compareLong(longNum)+"byte");
- }
이 코드 를 쓰 는 이 유 는 제 파 티 션 의 공간 이 거의 꽉 찼 고 안에 있 는 파일 과 폴 더 가 많아 서 도대체 어떤 공간 을 차지 하고 있 는 지 찾기 어렵 습 니 다. 그래서 저 는 간단 한 순환 으로 옮 겨 다 니 는 방법 으로 막후 의 진 범 을 찾 고 싶 습 니 다.)
위의 코드 는 다음 두 가지 핵심 코드 에 맞 춰 사용 해 야 합 니 다.
- /**
- * ,
- * @param file
- * @return
- */
- public long calcDirectorySize(File file){
- long directorySize=0L;
- File[] files=file.listFiles();
- for(int i=0;i
- if(files[i].isDirectory()){
- directorySize+=calcDirectorySize(files[i]);
- }else{
- directorySize+=files[i].length();
- }
- }
- return directorySize;
- }
- /**
- * long
- * @param num
- * @return
- */
- public long compareLong(long[] num){
- long tmp=0L;
- for(int i=0;i
1;i++){
- if(num[i]>num[i+1]){
- tmp=num[i];
- num[i]=num[i+1];
- num[i+1]=tmp;
- }
- }
- return tmp;
- }
2. 이름 을 바 꿀 파일 이 너무 많 습 니 다. 일괄 처리 방법 이 있 습 니까?
주어진 폴 더 의 모든 파일 이름 바 꾸 기
- /**
- *
- * @param files , , :X:\\directoryname
- * @param startVal
- * @param endVal
- */
- public void renameFile(String path,char startVal,char endVal){
- File[] files=new File(path).listFiles();
- String newName=null;
- int fileQuantity=0;
- int totalFileQuantity=0;
- int updatedFileQuantity=0;
- for(int j=0;j
- fileQuantity+=1; //
- String fileName=files[j].getName();
- if(fileName.charAt(0)==startVal&&fileName.contains(endVal+"")){
- totalFileQuantity+=1; //
- }
- }
- System.out.println(" ……");
- //
- for(int i=0;i
- String fileName=files[i].getName(); // ( )
- if(fileName.charAt(0)==startVal){
- try{
- //
- newName=fileName.substring(fileName.indexOf(endVal)+1);
- //
- String prefix=files[i].getAbsolutePath().substring(0,files[i].getAbsolutePath().indexOf(files[i].getName()));
- new File(files[i].toString()).renameTo(new File(prefix+newName));
- updatedFileQuantity+=1; //
- }catch(Exception e){
- System.err.println(" ……");
- e.printStackTrace();
- }
- }
- }
- System.out.println(" :"+fileQuantity+" ");
- System.out.println(" :"+totalFileQuantity+" ");
- System.out.println(" :"+updatedFileQuantity+" ");
- }
위의 코드 는 'x:\\\directory name' 과 같은 경로 형식 만 사용 할 수 있 습 니 다. 즉, 하나의 폴 더 를 일괄 처리 할 수 있 고 하나의 파일 을 조작 할 수 없습니다. 이 문 제 는 이름 을 바 꿀 하나의 파일 을 하나의 폴 더 에 넣 어서 해결 할 수 있 지만 의미 가 크 지 않 습 니 다. 이 함 수 는 주로 폴 더 안의 대량의 파일 을 일괄 적 으로 처리 하 는 데 사 용 됩 니 다.
PS: 이 함수 의 주요 방법 은 renameTo () 입 니 다. 이것 은 File 류 에 포 장 된 방법 입 니 다. 이 방법 은 저 로 하여 금 많은 정력 을 절약 하 게 합 니 다.
3. 하드디스크 의 상세 한 정보 보기
이 함 수 는 손 쉽게 쓴 것 이다.
- /**
- *
- */
- public static void getHardDriverInfo(){
- NumberFormat n=NumberFormat.getInstance(); //
- n.setMaximumFractionDigits(2); //
- File[] fileLst=File.listRoots();// File
- int driverQuantity=0; //
- double driverTotalSize=0L; //
- double driverFreeSize=0L; //
- for(int i=0;i
// File
- if(fileLst[i].length()<=0){ // 0
- System.err.println(" :"+fileLst[i].toString().substring(0,1)+" ");
- }else{
- System.out.println(" :"+fileLst[i].toString().substring(0,1)
- +" :"+n.format(fileLst[i].getTotalSpace()/1000000000.00D)+"(GB)"
- +" :"+n.format(fileLst[i].getFreeSpace()/1000000000.00D)+"(GB)"
- +" :"+FileTest.calcUtilization(fileLst[i].getTotalSpace(), fileLst[i].getFreeSpace())+"%");
- }
- driverTotalSize+=fileLst[i].getTotalSpace(); //
- driverFreeSize+=fileLst[i].getFreeSpace(); //
- driverQuantity+=1; //
- }
- n.setMaximumFractionDigits(1);
- System.out.println(" :"+driverQuantity+" "+"\r"
- +" :"+n.format(driverTotalSize/1000000.00D)+"MB :"
- +n.format(driverTotalSize/1000000000.00D)+"(GB)"+" :"+n.format(((driverTotalSize-driverFreeSize)/driverTotalSize)*100)+"%"+"\r"
- +" :"+n.format(driverFreeSize/1000000.00D)+"MB :"
- +n.format(driverFreeSize/1000000000.00D)+"(GB)"+" :"+n.format((driverFreeSize/driverTotalSize)*100)+"%");
- }
PS: 여기 서 말 하 는 하 드 디스크 는 바로 컴퓨터 에 있 는 하 드 디스크 입 니 다. 다 중 하 드 디스크 와 모 바 일 하 드 디스크 는 해 본 적 이 없습니다. USB 플래시 메모리 같은 것 은 해 본 적 이 없습니다. 안 됩 니 다. 루트 드라이브 만 검색 할 수 있 습 니 다.이 방법 은 매우 이상 하 다.
위의 함 수 는 아래 코드 와 결합 하여 실현 해 야 합 니 다.
- /**
- * =(( - )/ )*100
- * @param totalsize
- * @param freesize
- * @return
- */
- public static String calcUtilization(long totalsize,long freesize){
- String percentage=null;
- NumberFormat nf=NumberFormat.getInstance();
- nf.setMaximumFractionDigits(1);
- percentage=nf.format(((totalsize-freesize)/Double.parseDouble(String.valueOf(totalsize)))*100);
- return percentage;
- }
PS: 이 방법 은 간단 하 죠?)
결론: 위의 세 가지 방법 을 통 해 저 는 File 류 의 많은 함수 와 속성 을 익 혔 습 니 다. 앞으로 만약 에 사용 해도 조급해 하지 않 을 것 입 니 다.)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.