我正在编写一个java代码来检索从指定位置到文件系统的附件。 附件信息存储在数据库表列中,如此
Number attachment_url
----------- -----------------------------------------------------------------
SAT-3 C:\test_attachments\SAT\SAT-368\thumbs\_thumb_63650.png
SAT-10 C:\test_attachments\SAT\thumbs\_ts63650.xls
SAT-89 C:\test_attachments\SAT\thumbs\mydoc.pdf
文件扩展名可以是任意文件。
我可以获取附件网址,也可以创建文件夹。但是如何将附件写入特定文件夹呢?
File files = new File("E:\\Directory1\\" + m_Number);
if (!files.exists()) {
if (files.mkdirs()) {
System.out.println("Multiple directories are created!");
if (files.exists()) {
System.out.println("Directory exists");
if (files.canWrite()) {
Blob blob = resultSet.getBlob("att_url");
} else {
System.out.println("Access denied !!!");
}
}
} else {
System.out.println("Failed to create multiple directories!");
}
我怎样才能实现这个
答案 0 :(得分:1)
附件网址似乎不是BLOB。我认为这是一个字符串。所以只需获取字符串并创建一个File对象。如果文件存在,您可以将其复制到您的文件夹中。
File files = new File("E:\\Directory1\\" + m_jiraNumber);
if (!files.exists()) {
if (files.mkdirs()) {
System.out.println("Multiple directories are created!");
if (files.exists()) {
System.out.println("Directory exists");
if (files.canWrite()) {
String attachment = resultSet.getString("attachment_url").replace("\\", File.separator);
Path sourcePath = Paths.get(attachment);
Path destPath = Paths.get(files.getAbsolutePath() + File.separator + sourcePath.getFileName().toString());
Files.copy(sourcePath, destPath);
} else {
System.out.println("Access denied !!!");
}
}
} else {
System.out.println("Failed to create multiple directories!");
}
}