用java写一段代码,上传包含模型文件的文件夹到“piay”文件夹下
时间: 2024-02-23 20:03:02 浏览: 117
可以使用Java的IO类来实现上传文件夹到指定目录的功能。以下是一个示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class UploadFolderExample {
public static void main(String[] args) {
String folderPath = "path/to/folder"; // 需要上传的文件夹路径
String destinationPath = "path/to/destination/piay"; // 目标文件夹路径
// 压缩文件夹
String zipFileName = folderPath + ".zip";
zipFolder(folderPath, zipFileName);
// 上传压缩文件
File zipFile = new File(zipFileName);
File destinationFolder = new File(destinationPath);
try {
Files.copy(zipFile.toPath(), new File(destinationFolder, zipFile.getName()).toPath());
System.out.println("文件夹上传成功!");
} catch (IOException e) {
System.out.println("文件夹上传失败:" + e.getMessage());
} finally {
// 删除临时压缩文件
zipFile.delete();
}
}
/**
* 压缩文件夹
* @param folderPath 需要压缩的文件夹路径
* @param zipFileName 压缩文件的文件名
*/
private static void zipFolder(String folderPath, String zipFileName) {
try {
Path sourceFolderPath = Paths.get(folderPath);
FileOutputStream fos = new FileOutputStream(zipFileName);
ZipOutputStream zos = new ZipOutputStream(fos);
Files.walk(sourceFolderPath)
.filter(path -> !Files.isDirectory(path))
.forEach(path -> {
ZipEntry zipEntry = new ZipEntry(sourceFolderPath.relativize(path).toString());
try {
zos.putNextEntry(zipEntry);
Files.copy(path, zos);
zos.closeEntry();
} catch (IOException e) {
System.out.println("压缩文件夹失败:" + e.getMessage());
}
});
zos.close();
fos.close();
} catch (IOException e) {
System.out.println("压缩文件夹失败:" + e.getMessage());
}
}
}
```
说明:
1. 首先需要将需要上传的文件夹压缩为一个zip文件,这里使用了Java IO类中的ZipOutputStream实现文件夹压缩。
2. 然后将压缩文件上传到指定的目标文件夹中,这里使用了Java的Files类中的copy方法实现文件上传。
阅读全文