react-native-fs文件創(chuàng)建铲敛、查看褐澎、上傳、下載

一伐蒋、安裝依賴
  1. install
npm install react-native-fs --save
  1. link
react-native link react-native-fs

如果link失敗工三,或者link之后仍舊不能import迁酸,則考慮手動link,詳情查看官網(wǎng)教程俭正,傳送門奸鬓。(溫馨提示:新install依賴之后,記得重啟一下app——react-native run-ios //Android react-native run-android

二掸读、使用例子
1. 獲得文件夾路徑
import RNFS from 'react-native-fs';

//打印出常用路徑
printPaths = () => {
  console.log('MainBundlePath=' + RNFS.MainBundlePath)
  console.log('CachesDirectoryPath=' + RNFS.CachesDirectoryPath)
  console.log('DocumentDirectoryPath=' + RNFS.DocumentDirectoryPath)
  console.log('TemporaryDirectoryPath=' + RNFS.TemporaryDirectoryPath)
  console.log('LibraryDirectoryPath=' + RNFS.LibraryDirectoryPath)
  console.log('ExternalDirectoryPath=' + RNFS.ExternalDirectoryPath)
  console.log('ExternalStorageDirectoryPath=' + RNFS.ExternalStorageDirectoryPath)

  //打印日志---ios
  // MainBundlePath=/var/containers/Bundle/Application/9115F4F8-B2F6-4594-B2FC-9FF173946670/DvaStarter.app
  // CachesDirectoryPath=/var/mobile/Containers/Data/Application/558EF9E2-31DA-46FF-925F-160BB4D1EF35/Library/Caches
  // DocumentDirectoryPath=/var/mobile/Containers/Data/Application/558EF9E2-31DA-46FF-925F-160BB4D1EF35/Documents
  // TemporaryDirectoryPath=/private/var/mobile/Containers/Data/Application/558EF9E2-31DA-46FF-925F-160BB4D1EF35/tmp/
  // LibraryDirectoryPath=/var/mobile/Containers/Data/Application/558EF9E2-31DA-46FF-925F-160BB4D1EF35/Library
  // ExternalDirectoryPath=null
  // ExternalStorageDirectoryPath=null
}

這里可以簡單了解一下ios的沙盒模型串远。
1、Documents 目錄:您應(yīng)該將所有的應(yīng)用程序數(shù)據(jù)文件寫入到這個目錄下儿惫。這個目錄用于存儲用戶數(shù)據(jù)澡罚。該路徑可通過配置實現(xiàn)iTunes共享文件∩銮耄可被iTunes備份留搔。

2、AppName.app 目錄:這是應(yīng)用程序的程序包目錄铛铁,包含應(yīng)用程序的本身隔显。由于應(yīng)用程序必須經(jīng)過簽名,所以您在運行時不能對這個目錄中的內(nèi)容進行修改饵逐,否則可能會使應(yīng)用程序無法啟動括眠。

3、Library 目錄:這個目錄下有兩個子目錄:
3.1 Preferences 目錄:包含應(yīng)用程序的偏好設(shè)置文件倍权。您不應(yīng)該直接創(chuàng)建偏好設(shè)置文件掷豺,而是應(yīng)該使用NSUserDefaults類來取得和設(shè)置應(yīng)用程序的偏好.
3.2 Caches 目錄:用于存放應(yīng)用程序?qū)S玫闹С治募4鎽?yīng)用程序再次啟動過程中需要的信息账锹。
可創(chuàng)建子文件夾萌业。可以用來放置您希望被備份但不希望被用戶看到的數(shù)據(jù)奸柬。該路徑下的文件夾,除Caches以外婴程,都會被iTunes備份廓奕。

4、tmp 目錄:這個目錄用于存放臨時文件档叔,保存應(yīng)用程序再次啟動過程中不需要的信息桌粉。該路徑下的文件不會被iTunes備份。

2. 文件下載RNFS.downloadFile

react-native-fs提供了下載文件的方法衙四。

downloadFile(options: DownloadFileOptions): { jobId: number, promise: Promise<DownloadResult> }

方法解析:
需要一個參數(shù)options铃肯,格式如下:

type DownloadFileOptions = {
  fromUrl: string;          //下載的地址源(即下載鏈接)
  toFile: string;           // 本地的存儲路徑(路徑包括文件名)
  headers?: Headers;        // 需要傳遞給服務(wù)器的報頭(根據(jù)服務(wù)器的需要傳,一般不用)
  background?: boolean;     // 是否允許在后臺下載(僅適用于iOS)
  discretionary?: boolean;  // 是否允許手機操作系統(tǒng)控制下載  (僅適用于iOS)
  progressDivider?: number;//進度回調(diào)函數(shù)調(diào)用的頻率(假設(shè)設(shè)置為5传蹈,則每完成5%押逼,就會回調(diào)一次progress函數(shù)步藕。默認為0,回調(diào)頻率很高挑格,會影響性能)
  begin?: (res: DownloadBeginCallbackResult) => void;//開始下載時的回調(diào)函數(shù)
  progress?: (res: DownloadProgressCallbackResult) => void;//下載過程中的回調(diào)函數(shù)(與屬性progressDivider搭配使用)
  resumable?: () => void;    // 是否允許繼續(xù)繼續(xù)下載(僅適用于iOS) 
  connectionTimeout?: number // 連接超時時間(僅適用于Android)
  readTimeout?: number       // 讀取數(shù)據(jù)超時時間(適用于Android and iOS)
};

該方法返回一個對象咙冗,屬性jobId為任務(wù)id,為number類型漂彤,用于暫停下載和繼續(xù)下載雾消。屬性promise是一個Promise對象,可用來判斷下載是否完成挫望,進而執(zhí)行下載完成后的一些操作立润。

//設(shè)置下載參數(shù)
const options = {
  fromUrl: videoUrl,
  toFile: toFile,
  background: true,
  progressDivider: 5,
  begin: (res) => {
    //開始下載時回調(diào)
    console.log('begin', res);
  },
  progress: (res) => {
    //下載過程中回調(diào),根據(jù)options中設(shè)置progressDivider:5媳板,則在完成5%桑腮,10%,15%拷肌,...到旦,100%時分別回調(diào)一次,共回調(diào)20次巨缘。
    console.log('progress', res)
  }
}
const ret = RNFS.downloadFile(options);//調(diào)用downloadFile開始下載
console.log(ret.jobId); //打印一下看看jobId
ret.promise.then(res => {
  //下載完成時執(zhí)行
  console.log(res)
}
.catch(err => {
  //下載出錯時執(zhí)行
  console.log(err)
}


未完待續(xù)添忘。。若锁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搁骑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子又固,更是在濱河造成了極大的恐慌仲器,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仰冠,死亡現(xiàn)場離奇詭異乏冀,居然都是意外死亡,警方通過查閱死者的電腦和手機洋只,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門辆沦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人识虚,你說我怎么就攤上這事肢扯。” “怎么了担锤?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵蔚晨,是天一觀的道長。 經(jīng)常有香客問我肛循,道長铭腕,這世上最難降的妖魔是什么银择? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮谨履,結(jié)果婚禮上欢摄,老公的妹妹穿的比我還像新娘。我一直安慰自己笋粟,他們只是感情好怀挠,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著害捕,像睡著了一般绿淋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尝盼,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天吞滞,我揣著相機與錄音,去河邊找鬼盾沫。 笑死裁赠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赴精。 我是一名探鬼主播佩捞,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蕾哟!你這毒婦竟也來了一忱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谭确,失蹤者是張志新(化名)和其女友劉穎帘营,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逐哈,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡芬迄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昂秃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薯鼠。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖械蹋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情羞芍,我是刑警寧澤哗戈,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站荷科,受9級特大地震影響唯咬,放射性物質(zhì)發(fā)生泄漏纱注。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一胆胰、第九天 我趴在偏房一處隱蔽的房頂上張望狞贱。 院中可真熱鬧,春花似錦蜀涨、人聲如沸瞎嬉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氧枣。三九已至,卻和暖如春别垮,著一層夾襖步出監(jiān)牢的瞬間便监,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工碳想, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烧董,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓胧奔,卻偏偏與公主長得像逊移,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子葡盗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評論 25 707
  • 英語太爛螟左,菜鳥水平,如有不妥之處觅够,請各位大神指正 工作原理 React Native應(yīng)用程序由JavaScript...
    Juice_gg閱讀 3,737評論 0 4
  • 搜羅自各大網(wǎng)站胶背,新聞媒體端 一直在想自己以后頭發(fā)的樣子
    i愛自然閱讀 253評論 0 0
  • 年少時讀《小王子》,對星際旅行一節(jié)印象頗深喘先。他曾來到一個酒鬼的星球: “你在干什么钳吟?”小王子問酒鬼,這個酒鬼默默地...
    魏謎底閱讀 10,522評論 6 55
  • 我是昨晚在單位食堂吃完晚飯在小區(qū)的小路邊見到它的窘拯。它一身黃白相間的皮毛红且,身形嬌小,獨自一人蹲在路邊張望涤姊、巡視暇番,看見...
    若水Dewlight閱讀 347評論 0 3