[英]Appending the file type to a file in Java using JFileChooser
我正在嘗試使用JFileChooser保存圖像。 我只希望用戶能夠將圖像保存為jpg。 但是,如果他們不鍵入.jpg,則不會將其另存為圖像。 有可能以某種方式將“.jpg”附加到文件的末尾嗎?
File file = chooser.getSelectedFile() + ".jpg";
不起作用,因為我正在向文件添加字符串。
為什么不在完成后將File
轉換為String
並創建新File
?
File f = chooser.getSelectedFile();
String filePath = f.getAbsolutePath();
if(!filePath.endsWith(".jpg")) {
f = new File(filePath + ".jpg");
}
請記住,如果它已經存在,則無需添加.jpg
。
如果您分兩步執行此操作:將擴展名添加到所選文件,然后創建附加了擴展名的File
對象。
String withExtension = chooser.getSelectedFile().getAbsolutePath() + ".jpg";
File file = new File( withExtension )
在您的問題中隱含,但僅涵蓋所有基礎:需要檢查擴展名是否已經存在,例如:
String withExtension = chooser.getSelectedFile().getAbsolutePath();
if( !withExtension.toLowerCase().endsWith( ".jpg" ) )
withExtension += ".jpg";
[你可能想“.JPEG”添加到if
以上-這是為JPEG文件的有效擴展]
以下代碼可能有效,也可能無效。 File
有一個toString()
允許它編譯,但我寧願使用上面的方法,在那里我可以控制我得到的確切路徑名。 File
對象的toString()
文檔對於我究竟返回的內容有點不清楚。 在像這樣的情況下,我更喜歡調用一個我知道返回我需要的函數。
File file = new File( chooser.getSelectedFile() + ".jpg" );
最好的方法是檢查可接受的條目。 如果找不到,請替換文件exention而不是在其上面書寫。
File f = chooser.getSelectedFile().getAbsolutePath();
String path = f.getAbsolutePath();
if (!path.matches(".*\\.(jpg|jpeg)")) {
// If the extension isn't there. We need to replace it
path = path.substring(0, path.lastIndexOf(".") + 1).concat("jpg");
f = new File(path);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.