最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java調(diào)用Oss JDk實現(xiàn)刪除指定目錄下的所有文件

 更新時間:2025年03月18日 09:10:26   作者:APP 肖提莫  
這篇文章主要為大家詳細介紹了Java如何調(diào)用Oss JDk實現(xiàn)刪除指定目錄下的所有文件功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下

1、引入依賴

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.16.1</version>
</dependency>

2、方法

/**
	 * 刪除指定前綴或目錄下的多個文件
	 *
	 * @param prefix 刪除目錄
	 */
	public void deletePathFileList(String prefix) {
		OSS ossClient = null;
		try {
            //封裝創(chuàng)建Oss實例
			CredentialsProvider credentialsProvider = new DefaultCredentialProvider(access_key, secret_key);
			ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
			clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
			ossClient = OSSClientBuilder.create().endpoint(endpoint).credentialsProvider(credentialsProvider).clientConfiguration(clientBuilderConfiguration).region(region).build();
            // 列舉所有包含指定前綴的文件并刪除。
			String nextMarker = null;
			ObjectListing objectListing;
			do {
				ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucket).withPrefix(prefix).withMarker(nextMarker);
 
				objectListing = ossClient.listObjects(listObjectsRequest);
				if (!objectListing.getObjectSummaries().isEmpty()) {
					List<String> keys = new ArrayList<>();
					for (OSSObjectSummary s : objectListing.getObjectSummaries()) {
						keys.add(s.getKey());
					}
					DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucket).withKeys(keys).withEncodingType("url");
					DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(deleteObjectsRequest);
					List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
					for (String obj : deletedObjects) {
						String deleteObj = URLDecoder.decode(obj, "UTF-8");
						System.out.println(deleteObj);
					}
				}
				nextMarker = objectListing.getNextMarker();
			} while (objectListing.isTruncated());
		} catch (Exception e) {
			log.error("阿里云刪除指定前綴或目錄下的多個文件異常:{}", e.getMessage());
		} finally {
			if (ossClient != null) {
				ossClient.shutdown();
			}
		}
	}

3、方法補充

下面小編為大家整理了Java刪除文件的所有方法,有需要的可以參考下

1.使用FileUtils類

來自 Apache Commons IO的FileUtils類提供了幾個方便的文件操作實用程序。您可以使用該FileUtils.cleanDirectory()方法遞歸刪除目錄中的所有文件和子目錄,而不刪除目錄本身。

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException; 
public class Main {
    public static void main(String[] args) throws IOException {
        File directory = new File("/path/to/dir");
        FileUtils.cleanDirectory(directory);
    }
}

要遞歸刪除目錄及其中的所有內(nèi)容,您可以使用該FileUtils.deleteDirectory()方法。

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException; 
public class Main {
    public static void main(String[] args) throws IOException {
        File directory = new File("/path/to/dir");
        FileUtils.deleteDirectory(directory);
    }
}

或者,您可以使用該FileUtils.forceDelete()方法刪除一個目錄和所有子目錄。

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        File directory = new File("/path/to/dir");
        FileUtils.forceDelete(directory);
    }
}

2.使用File.delete()方法

該File.delete()方法刪除由指定路徑名表示的文件或目錄。有許多方法可以有條件地刪除使用它的目錄中的文件和子目錄。

例如,以下解決方案僅刪除主目錄中的文件,所有子目錄保持不變。

import java.io.File;
import java.util.Objects; 
public class Main {
    public static void main(String[] args) {
        File directory = new File("/path/to/dir"); 
        for (File file: Objects.requireNonNull(directory.listFiles())) {
            if (!file.isDirectory()) {
                file.delete();
            }
        }
    }
}

如果您使用 Java 8 或更高版本,則可以使用:

import java.io.File;
import java.util.Arrays;
import java.util.Objects;
import java.util.function.Predicate; 
public class Main {
    public static void deleteDirectory(File directory) {
        Arrays.stream(Objects.requireNonNull(directory.listFiles()))
                .filter(Predicate.not(File::isDirectory))
                .forEach(File::delete);
    } 
    public static void main(String[] args) {
        File directory = new File("/path/to/dir");
        deleteDirectory(directory);
    }
}

您可以輕松擴展解決方案以遞歸刪除目錄中的所有文件和子目錄。請注意,F(xiàn)ile.delete()當且僅當目錄為空時,您可以使用該方法刪除目錄。

import java.io.File;
import java.util.Objects; 
public class Main {
    public static void deleteDirectory(File directory) {
        for (File file: Objects.requireNonNull(directory.listFiles())) {
            if (file.isDirectory()) {
                deleteDirectory(file);
            } else {
                file.delete();
            }
        }
    } 
    public static void main(String[] args) {
        File directory = new File("/path/to/dir");
        deleteDirectory(directory);
    }
}

這是使用 Stream API 的版本。它利用該Files.walk()方法并刪除目錄中的所有文件和子目錄以及目錄本身。

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Comparator; 
public class Main {
    public static void deleteDirectory(Path directory) throws IOException {
        Files.walk(directory)
                .sorted(Comparator.reverseOrder())
                .map(Path::toFile)
                .forEach(File::delete);
    } 
    public static void main(String[] args) throws IOException {
        Path directory = Path.of("/path/to/dir");
        deleteDirectory(directory);
    }
}

如果您需要從目錄及其所有子目錄中刪除“僅文件”,您可以執(zhí)行以下操作:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path; 
public class Main {
    public static void deleteDirectory(File directory) throws IOException {
        Files.walk(directory.toPath())
                .filter(Files::isRegularFile)
                .map(Path::toFile)
                .forEach(File::delete);
    } 
    public static void main(String[] args) throws IOException {
        File directory = new File("/path/to/dir");
        deleteDirectory(directory);
    }
}

到此這篇關于Java調(diào)用Oss JDk實現(xiàn)刪除指定目錄下的所有文件的文章就介紹到這了,更多相關Java刪除指定目錄下文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MyBatis-Plus動態(tài)表名使用selectPage方法不生效問題解析與解決方案

    MyBatis-Plus動態(tài)表名使用selectPage方法不生效問題解析與解決方案

    MyBatis-Plus是MyBatis的增強工具,動態(tài)表名是MyBatis-Plus的一個重要功能之一,一些開發(fā)者在使用selectPage方法時可能會遇到動態(tài)表名不生效的問題,本文將深入分析這個問題的原因,并提供相應的解決方案,需要的朋友可以參考下
    2023-12-12
  • 詳解如何開發(fā)一個MyBatis通用Mapper的輪子

    詳解如何開發(fā)一個MyBatis通用Mapper的輪子

    因為一些原因,例如:通用數(shù)據(jù)權限控制、MyBatis-Plus好像不支持聯(lián)合主鍵等,我們不得不開發(fā)一個MyBatis通用Mapper的輪子。文中的示例代碼講解詳細,需要的可以參考一下
    2022-12-12
  • java利用遞歸實現(xiàn)類別樹示例代碼

    java利用遞歸實現(xiàn)類別樹示例代碼

    這篇文章主要給大家介紹了關于java利用遞歸實現(xiàn)類別樹的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • CCF考試試題之門禁系統(tǒng)java解題代碼

    CCF考試試題之門禁系統(tǒng)java解題代碼

    這篇文章主要為大家詳細介紹了CCF考試試題之門禁系統(tǒng)java解題代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 一篇文章帶你入門Java接口

    一篇文章帶你入門Java接口

    這篇文章主要介紹了JAVA中接口的定義和接口的實現(xiàn),文中講解非常細致,配合代碼更好的幫大家學習參考,感興趣的朋友可以了解下
    2021-08-08
  • Springboot之idea之pom文件圖標不對問題

    Springboot之idea之pom文件圖標不對問題

    這篇文章主要介紹了Springboot之idea之pom文件圖標不對問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java完美實現(xiàn)2048小游戲

    Java完美實現(xiàn)2048小游戲

    本文給大家分享的是一則根據(jù)網(wǎng)友的代碼改編的2048小游戲的源碼,個人認為已經(jīng)非常完美了,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Kotlin + Retrofit + RxJava簡單封裝使用詳解

    Kotlin + Retrofit + RxJava簡單封裝使用詳解

    這篇文章主要介紹了Kotlin + Retrofit + RxJava簡單封裝使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Java中Thread類的使用和它的屬性

    Java中Thread類的使用和它的屬性

    在java中可以進行多線程編程,在java標準庫中提供了一個Thread類,來表示線程操作,本文主要介紹了Java中Thread類的使用和它的屬性,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • SpringMVC中@Valid不起效BindingResult讀取不到Error信息

    SpringMVC中@Valid不起效BindingResult讀取不到Error信息

    在寫SpringMVC項目時,由于要對表單數(shù)據(jù)進行校驗,需要使用@Valid進行校驗,但是在進行數(shù)據(jù)校驗時,BindingResult對象無法攔截非法表單數(shù)據(jù),result.hasErrors()無論怎么輸入都會返回false,本文詳細的介紹一下解決方法
    2021-09-09

最新評論

三亚市| 威海市| 左云县| 任丘市| 唐山市| 当阳市| 沧州市| 正蓝旗| 凤阳县| 墨脱县| 樟树市| 宜城市| 兴隆县| 益阳市| 正安县| 上林县| 嘉禾县| 永宁县| 迁西县| 光山县| 青冈县| 城步| 静海县| 阿克| 安顺市| 融水| 贵阳市| 金门县| 丹东市| 丁青县| 安溪县| 诸暨市| 云浮市| 霍城县| 吉水县| 佛冈县| 迁西县| 习水县| 武汉市| 柳河县| 汾阳市|