在之前的分享中,曾經(jīng)提到一個文件上傳的問題
/data/user/0/cn.jltf.neighbor/files/534.jpg: open failed: ENOENT (No such file)
該文件不存在。但實際上該文件存在并能顯示出來。后來發(fā)現(xiàn)是鴻蒙系統(tǒng)的權限問題,只能訪問私有目錄下的文件。
解決方法:將文件復制到私有目錄下,再進行訪問。
代碼如下:
HiLog.info(label,"私有目錄:"+this.getFilesDir());
HiLog.info(label,"緩存目錄:"+this.getCacheDir());
HiLog.info(label,"數(shù)據(jù)目錄:"+this.getDataDir());
HiLog.info(label,"外部目錄:"+this.getExternalCacheDir());
HiLog.info(label,"引用目錄:"+this.getPreferencesDir());
HiLog.info(label,"同步目錄:"+this.getDistributedDir());
HiLog.info(label,"應用目錄:"+this.getDir("",Context.MODE_PRIVATE));
File[]dataChildFiles=this.getDataDir().listFiles();
for(FiledataChildFile:dataChildFiles){
HiLog.info(label,"數(shù)據(jù)子目錄:"+dataChildFile);
}
File[]externalFiles=this.getExternalMediaDirs();
for(FileexternalFile:externalFiles){
HiLog.info(label,"外部Media目錄:"+externalFile);
}
try{
//該目錄和JSUI中的internal://cache/目錄是一個目錄
Filefile=newFile(this.getCacheDir()+"/111.jpg");
HiLog.info(label,"文件路徑:"+file);
if(file.exists())
{
HiLog.info(label,"文件已存在");
return;
}
HiLog.info(label,"文件不存在");
InputStreaminputStream=getContext().getResourceManager().getResource(ResourceTable.Media_icon);
ImageSource.SourceOptionssrcOpts=newImageSource.SourceOptions();
srcOpts.formatHint="image/jpeg";
ImageSourceimageSource=ImageSource.create(inputStream,srcOpts);
//設置圖片參數(shù)
ImageSource.DecodingOptionsdecodingOptions=newImageSource.DecodingOptions();
decodingOptions.desiredSize=newSize(200,200);
imageSource.createPixelmap(decodingOptions);
//該種方式直接訪問internal://app目錄//FileOutputStreamfos=newFileOutputStream("/data/user/0/com.example.abilitytransfertest/files//111.jpg");
FileOutputStreamfos=newFileOutputStream(this.getCacheDir()+"/111.jpg");
ImagePackerimagePacker=ImagePacker.create();
ImagePacker.PackingOptionspackingOptions=newImagePacker.PackingOptions();
packingOptions.format="image/jpeg";
packingOptions.quality=90;
booleanresult=imagePacker.initializePacking(fos,packingOptions);
if(result)
{
result=imagePacker.addImage(imageSource.createPixelmap(decodingOptions));
if(result){
longdataSize=imagePacker.finalizePacking();
HiLog.info(label,"文件大?。?+dataSize);
}
}
fos.flush();
fos.close();
if(file.exists())
{
HiLog.info(label,"文件已存在");
return;
}
}catch(IOException|NotExistExceptione){
HiLog.info(label,"文件保存出錯:"+e.getMessage());
e.printStackTrace();
}
Filefile=this.getCacheDir();
File[]files=file.listFiles();
for(Filefile1:files){
HiLog.info(label,"File目錄:"+file1);
}
審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
應用開發(fā)
+關注
關注
0文章
63瀏覽量
9687 -
HarmonyOS
+關注
關注
80文章
2085瀏覽量
32322
發(fā)布評論請先 登錄
相關推薦
熱點推薦
鴻蒙原生應用元服務開發(fā)-Web上傳文件
Web組件支持前端頁面選擇文件上傳功能,應用開發(fā)者可以使用onShowFileSelector()接口來處理前端頁面文件上傳的請求。
下面的
發(fā)表于 05-08 11:17

#硬聲創(chuàng)作季 #HarmonyOS HarmonyOS應用開發(fā)-06.3 分布式文件系統(tǒng)-1
文件文件系統(tǒng)HarmonyOS
水管工
發(fā)布于 :2022年11月16日 12:00:52

#硬聲創(chuàng)作季 #HarmonyOS HarmonyOS應用開發(fā)-06.3 分布式文件系統(tǒng)-2
文件文件系統(tǒng)HarmonyOS
水管工
發(fā)布于 :2022年11月16日 12:01:12
HarmonyOS應用開發(fā)-okhttp3.0快速集合文件上傳
應用開發(fā)過程中經(jīng)常需要進行文件上傳功能開發(fā),通過okhttp3.0可以快速集合完成文件上傳的功能。代碼如下:OkHttpClient htt
發(fā)表于 03-08 14:23
HarmonyOS應用開發(fā)-圖片文件上傳錯誤交流
在開發(fā)過程中,遇到一個上傳文件時的錯誤,特地在此記錄一下。相關代碼:/** 圖片上傳* */public static void sendMultipart(String urlAdd
發(fā)表于 03-25 11:06
HarmonyOS應用開發(fā)-文件上傳問題的解決方式
在之前的分享中,曾經(jīng)提到一個文件上傳的問題/data/user/0/cn.jltf.neighbor/files/534.jpg: open failed: ENOENT (No such file
發(fā)表于 04-20 15:27
怎樣通過遠程連接方式控制云端真機對HarmonyOS應用進行測試呢
通過遠程連接方式控制云端真機對HarmonyOS應用進行測試,包括HarmonyOS應用在遠程真機上的安裝、測試等,當前支持的真機設備包含TV、Lite Wearable設備、Phone和平板電腦
發(fā)表于 05-24 14:45
基于Iframe內(nèi)聯(lián)框架的異步文件上傳與刪除
在Weh應用程序開發(fā)過程中,文件上傳功能是個很常用又非常重要的功能,它要處理的內(nèi)容主要包括:如何將上傳的文件以
發(fā)表于 11-11 10:20
?5次下載

如何在java上傳和下載文件
文件上傳在web應用中非常普遍,要在jsp環(huán)境中實現(xiàn)文件上傳功能是非常容易的,因為網(wǎng)上有許多用java開發(fā)的
發(fā)表于 11-13 08:00
?11次下載
java Web如何實現(xiàn)文件的上傳與下載
文件上傳概述,實現(xiàn)web開發(fā)中的文件上傳功能,需完成如下二步操作:
在web頁面中添加上傳輸入
發(fā)表于 03-06 11:03
?7次下載

HarmonyOS應用開發(fā)okhttp3.0快速集合文件上傳
? ? ? ? ?應用開發(fā)過程中經(jīng)常需要進行文件上傳功能開發(fā),通過okhttp3.0可以快速集合完成文件上傳的功能。 代碼如下: OkHtt
HarmonyOS應用開發(fā)—圖片文件上傳錯誤交流
在開發(fā)過程中,遇到一個上傳文件時的錯誤,特地在此記錄一下。 相關代碼: /** 圖片上傳* */public static void sendMultipart(String urlA
面向HarmonyOS開發(fā)者的HarmonyOS 3.0 Beta介紹
2021年10月,我們面向開發(fā)者發(fā)布了HarmonyOS 3.0 Developer Preview版,但開發(fā)的腳步永不停歇,現(xiàn)在我們又更新了API版本,配套發(fā)布了HarmonyOS
前端文件上傳的幾種交互造輪子
可以用剪貼板功能讓自己的 cv 實現(xiàn)文件上傳,于是自己就整合了目前幾種文件上傳的交互方式,碼了一個支持 cv 的 vue3
評論