android的文件操作要有权限:

view plain copy to clipboard print ?
  1. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

SD卡下的文件操作:

1、判断SD卡是否插入

view plain copy to clipboard print ?
  1. Environment.getExternalStorageState().equals(
  2. android.os.Environment.MEDIA_MOUNTED);

2、获得sd卡根目录:

view plain copy to clipboard print ?
  1. FileskRoot=Environment.getExternalStorageDirectory();


私有目录下的文件操作:

1、获得私有根目录:

view plain copy to clipboard print ?
  1. FilefileRoot=Context.getFilesDir()+"\\";


文件夹或文件夹操作:

1、确定或获得文件夹和文件路径

a、获得文件或文件夹的绝对路径和相对路径。区别(详见)

view plain copy to clipboard print ?
  1. Stringpath=File.getPath();//相对
  2. Stringpath=File.getAbsoultePath();//绝对

b、获得文件或文件夹的父目录

view plain copy to clipboard print ?
  1. StringparentPath=File.getParent();

c、获得文件或文件夹的名称:

view plain copy to clipboard print ?
  1. StringName=File.getName();

2、建立文件或文件夹

view plain copy to clipboard print ?
  1. File.mkDir();//建立文件夹
  2. File.createNewFile();//建立文件

3、判断是文件或文件夹

view plain copy to clipboard print ?
  1. File.isDirectory()

4、列出文件夹下的所有文件和文件夹名

view plain copy to clipboard print ?
  1. File[]files=File.listFiles();

5、修改文件夹和文件名

view plain copy to clipboard print ?
  1. File.renameTo(dest);

6、删除文件夹或文件

view plain copy to clipboard print ?
  1. File.delete();


示例代码:

  1. packageotheri.common;
  2. importjava.io.File;
  3. importjava.io.FileInputStream;
  4. importjava.io.FileOutputStream;
  5. importjava.io.IOException;
  6. importjava.io.InputStream;
  7. importjava.io.OutputStream;
  8. importotheri.io.Input;
  9. importotheri.io.Output;
  10. importandroid.content.Context;
  11. importandroid.os.Environment;
  12. publicclassFileHelper{
  13. privateContextcontext;
  14. privateStringSDPATH;
  15. privateStringFILESPATH;
  16. publicFileHelper(Contextcontext){
  17. this.context=context;
  18. SDPATH=Environment.getExternalStorageDirectory().getPath()+"//";
  19. FILESPATH=this.context.getFilesDir().getPath()+"//";
  20. }
  21. /**
  22. *在SD卡上创建文件
  23. *
  24. *@throwsIOException
  25. */
  26. publicFilecreatSDFile(StringfileName)throwsIOException{
  27. Filefile=newFile(SDPATH+fileName);
  28. file.createNewFile();
  29. returnfile;
  30. }
  31. /**
  32. *删除SD卡上的文件
  33. *
  34. *@paramfileName
  35. */
  36. publicbooleandelSDFile(StringfileName){
  37. Filefile=newFile(SDPATH+fileName);
  38. if(file==null||!file.exists()||file.isDirectory())
  39. returnfalse;
  40. file.delete();
  41. returntrue;
  42. }
  43. /**
  44. *在SD卡上创建目录
  45. *
  46. *@paramdirName
  47. */
  48. publicFilecreatSDDir(StringdirName){
  49. Filedir=newFile(SDPATH+dirName);
  50. dir.mkdir();
  51. returndir;
  52. }
  53. /**
  54. *删除SD卡上的目录
  55. *
  56. *@paramdirName
  57. */
  58. publicbooleandelSDDir(StringdirName){
  59. Filedir=newFile(SDPATH+dirName);
  60. returndelDir(dir);
  61. }
  62. /**
  63. *修改SD卡上的文件或目录名
  64. *
  65. *@paramfileName
  66. */
  67. publicbooleanrenameSDFile(StringoldfileName,StringnewFileName){
  68. FileoleFile=newFile(SDPATH+oldfileName);
  69. FilenewFile=newFile(SDPATH+newFileName);
  70. returnoleFile.renameTo(newFile);
  71. }
  72. /**
  73. *拷贝SD卡上的单个文件
  74. *
  75. *@parampath
  76. *@throwsIOException
  77. */
  78. publicbooleancopySDFileTo(StringsrcFileName,StringdestFileName)
  79. throwsIOException{
  80. FilesrcFile=newFile(SDPATH+srcFileName);
  81. FiledestFile=newFile(SDPATH+destFileName);
  82. returncopyFileTo(srcFile,destFile);
  83. }
  84. /**
  85. *拷贝SD卡上指定目录的所有文件
  86. *
  87. *@paramsrcDirName
  88. *@paramdestDirName
  89. *@return
  90. *@throwsIOException
  91. */
  92. publicbooleancopySDFilesTo(StringsrcDirName,StringdestDirName)
  93. throwsIOException{
  94. FilesrcDir=newFile(SDPATH+srcDirName);
  95. FiledestDir=newFile(SDPATH+destDirName);
  96. returncopyFilesTo(srcDir,destDir);
  97. }
  98. /**
  99. *移动SD卡上的单个文件
  100. *
  101. *@paramsrcFileName
  102. *@paramdestFileName
  103. *@return
  104. *@throwsIOException
  105. */
  106. publicbooleanmoveSDFileTo(StringsrcFileName,StringdestFileName)
  107. throwsIOException{
  108. FilesrcFile=newFile(SDPATH+srcFileName);
  109. FiledestFile=newFile(SDPATH+destFileName);
  110. returnmoveFileTo(srcFile,destFile);
  111. }
  112. /**
  113. *移动SD卡上的指定目录的所有文件
  114. *
  115. *@paramsrcDirName
  116. *@paramdestDirName
  117. *@return
  118. *@throwsIOException
  119. */
  120. publicbooleanmoveSDFilesTo(StringsrcDirName,StringdestDirName)
  121. throwsIOException{
  122. FilesrcDir=newFile(SDPATH+srcDirName);
  123. FiledestDir=newFile(SDPATH+destDirName);
  124. returnmoveFilesTo(srcDir,destDir);
  125. }
  126. /*
  127. *将文件写入sd卡。如:writeSDFile("test.txt");
  128. */
  129. publicOutputwriteSDFile(StringfileName)throwsIOException{
  130. Filefile=newFile(SDPATH+fileName);
  131. FileOutputStreamfos=newFileOutputStream(file);
  132. returnnewOutput(fos);
  133. }
  134. /*
  135. *在原有文件上继续写文件。如:appendSDFile("test.txt");
  136. */
  137. publicOutputappendSDFile(StringfileName)throwsIOException{
  138. Filefile=newFile(SDPATH+fileName);
  139. FileOutputStreamfos=newFileOutputStream(file,true);
  140. returnnewOutput(fos);
  141. }
  142. /*
  143. *从SD卡读取文件。如:readSDFile("test.txt");
  144. */
  145. publicInputreadSDFile(StringfileName)throwsIOException{
  146. Filefile=newFile(SDPATH+fileName);
  147. FileInputStreamfis=newFileInputStream(file);
  148. returnnewInput(fis);
  149. }
  150. /**
  151. *建立私有文件
  152. *
  153. *@paramfileName
  154. *@return
  155. *@throwsIOException
  156. */
  157. publicFilecreatDataFile(StringfileName)throwsIOException{
  158. Filefile=newFile(FILESPATH+fileName);
  159. file.createNewFile();
  160. returnfile;
  161. }
  162. /**
  163. *建立私有目录
  164. *
  165. *@paramdirName
  166. *@return
  167. */
  168. publicFilecreatDataDir(StringdirName){
  169. Filedir=newFile(FILESPATH+dirName);
  170. dir.mkdir();
  171. returndir;
  172. }
  173. /**
  174. *删除私有文件
  175. *
  176. *@paramfileName
  177. *@return
  178. */
  179. publicbooleandelDataFile(StringfileName){
  180. Filefile=newFile(FILESPATH+fileName);
  181. returndelFile(file);
  182. }
  183. /**
  184. *删除私有目录
  185. *
  186. *@paramdirName
  187. *@return
  188. */
  189. publicbooleandelDataDir(StringdirName){
  190. Filefile=newFile(FILESPATH+dirName);
  191. returndelDir(file);
  192. }
  193. /**
  194. *更改私有文件名
  195. *
  196. *@paramoldName
  197. *@paramnewName
  198. *@return
  199. */
  200. publicbooleanrenameDataFile(StringoldName,StringnewName){
  201. FileoldFile=newFile(FILESPATH+oldName);
  202. FilenewFile=newFile(FILESPATH+newName);
  203. returnoldFile.renameTo(newFile);
  204. }
  205. /**
  206. *在私有目录下进行文件复制
  207. *
  208. *@paramsrcFileName
  209. *:包含路径及文件名
  210. *@paramdestFileName
  211. *@return
  212. *@throwsIOException
  213. */
  214. publicbooleancopyDataFileTo(StringsrcFileName,StringdestFileName)
  215. throwsIOException{
  216. FilesrcFile=newFile(FILESPATH+srcFileName);
  217. FiledestFile=newFile(FILESPATH+destFileName);
  218. returncopyFileTo(srcFile,destFile);
  219. }
  220. /**
  221. *复制私有目录里指定目录的所有文件
  222. *
  223. *@paramsrcDirName
  224. *@paramdestDirName
  225. *@return
  226. *@throwsIOException
  227. */
  228. publicbooleancopyDataFilesTo(StringsrcDirName,StringdestDirName)
  229. throwsIOException{
  230. FilesrcDir=newFile(FILESPATH+srcDirName);
  231. FiledestDir=newFile(FILESPATH+destDirName);
  232. returncopyFilesTo(srcDir,destDir);
  233. }
  234. /**
  235. *移动私有目录下的单个文件
  236. *
  237. *@paramsrcFileName
  238. *@paramdestFileName
  239. *@return
  240. *@throwsIOException
  241. */
  242. publicbooleanmoveDataFileTo(StringsrcFileName,StringdestFileName)
  243. throwsIOException{
  244. FilesrcFile=newFile(FILESPATH+srcFileName);
  245. FiledestFile=newFile(FILESPATH+destFileName);
  246. returnmoveFileTo(srcFile,destFile);
  247. }
  248. /**
  249. *移动私有目录下的指定目录下的所有文件
  250. *
  251. *@paramsrcDirName
  252. *@paramdestDirName
  253. *@return
  254. *@throwsIOException
  255. */
  256. publicbooleanmoveDataFilesTo(StringsrcDirName,StringdestDirName)
  257. throwsIOException{
  258. FilesrcDir=newFile(FILESPATH+srcDirName);
  259. FiledestDir=newFile(FILESPATH+destDirName);
  260. returnmoveFilesTo(srcDir,destDir);
  261. }
  262. /*
  263. *将文件写入应用私有的files目录。如:writeFile("test.txt");
  264. */
  265. publicOutputwirteFile(StringfileName)throwsIOException{
  266. OutputStreamos=context.openFileOutput(fileName,
  267. Context.MODE_WORLD_WRITEABLE);
  268. returnnewOutput(os);
  269. }
  270. /*
  271. *在原有文件上继续写文件。如:appendFile("test.txt");
  272. */
  273. publicOutputappendFile(StringfileName)throwsIOException{
  274. OutputStreamos=context.openFileOutput(fileName,Context.MODE_APPEND);
  275. returnnewOutput(os);
  276. }
  277. /*
  278. *从应用的私有目录files读取文件。如:readFile("test.txt");
  279. */
  280. publicInputreadFile(StringfileName)throwsIOException{
  281. InputStreamis=context.openFileInput(fileName);
  282. returnnewInput(is);
  283. }
  284. /**********************************************************************************************************/
  285. /*********************************************************************************************************/
  286. */
  287. /**
  288. *删除一个文件
  289. *
  290. *@paramfile
  291. *@return
  292. */
  293. publicbooleandelFile(Filefile){
  294. if(file.isDirectory())
  295. returnfalse;
  296. returnfile.delete();
  297. }
  298. /**
  299. *删除一个目录(可以是非空目录)
  300. *
  301. *@paramdir
  302. */
  303. publicbooleandelDir(Filedir){
  304. if(dir==null||!dir.exists()||dir.isFile()){
  305. returnfalse;
  306. }
  307. for(Filefile:dir.listFiles()){
  308. if(file.isFile()){
  309. file.delete();
  310. }elseif(file.isDirectory()){
  311. delDir(file);//递归
  312. }
  313. }
  314. dir.delete();
  315. returntrue;
  316. }
  317. /**
  318. *拷贝一个文件,srcFile源文件,destFile目标文件
  319. *
  320. *@parampath
  321. *@throwsIOException
  322. */
  323. publicbooleancopyFileTo(FilesrcFile,FiledestFile)throwsIOException{
  324. if(srcFile.isDirectory()||destFile.isDirectory())
  325. returnfalse;//判断是否是文件
  326. FileInputStreamfis=newFileInputStream(srcFile);
  327. FileOutputStreamfos=newFileOutputStream(destFile);
  328. intreadLen=0;
  329. byte[]buf=newbyte[1024];
  330. while((readLen=fis.read(buf))!=-1){
  331. fos.write(buf,0,readLen);
  332. }
  333. fos.flush();
  334. fos.close();
  335. fis.close();
  336. returntrue;
  337. }
  338. /**
  339. *拷贝目录下的所有文件到指定目录
  340. *
  341. *@paramsrcDir
  342. *@paramdestDir
  343. *@return
  344. *@throwsIOException
  345. */
  346. publicbooleancopyFilesTo(FilesrcDir,FiledestDir)throwsIOException{
  347. if(!srcDir.isDirectory()||!destDir.isDirectory())
  348. returnfalse;//判断是否是目录
  349. if(!destDir.exists())
  350. returnfalse;//判断目标目录是否存在
  351. File[]srcFiles=srcDir.listFiles();
  352. for(inti=0;i<srcFiles.length;i++){
  353. if(srcFiles[i].isFile()){
  354. //获得目标文件
  355. FiledestFile=newFile(destDir.getPath()+"//"
  356. +srcFiles[i].getName());
  357. copyFileTo(srcFiles[i],destFile);
  358. }elseif(srcFiles[i].isDirectory()){
  359. FiletheDestDir=newFile(destDir.getPath()+"//"
  360. +srcFiles[i].getName());
  361. copyFilesTo(srcFiles[i],theDestDir);
  362. }
  363. }
  364. returntrue;
  365. }
  366. /**
  367. *移动一个文件
  368. *
  369. *@paramsrcFile
  370. *@paramdestFile
  371. *@return
  372. *@throwsIOException
  373. */
  374. publicbooleanmoveFileTo(FilesrcFile,FiledestFile)throwsIOException{
  375. booleaniscopy=copyFileTo(srcFile,destFile);
  376. if(!iscopy)
  377. returnfalse;
  378. delFile(srcFile);
  379. returntrue;
  380. }
  381. /**
  382. *移动目录下的所有文件到指定目录
  383. *
  384. *@paramsrcDir
  385. *@paramdestDir
  386. *@return
  387. *@throwsIOException
  388. */
  389. publicbooleanmoveFilesTo(FilesrcDir,FiledestDir)throwsIOException{
  390. if(!srcDir.isDirectory()||!destDir.isDirectory()){
  391. returnfalse;
  392. }
  393. File[]srcDirFiles=srcDir.listFiles();
  394. for(inti=0;i<srcDirFiles.length;i++){
  395. if(srcDirFiles[i].isFile()){
  396. FileoneDestFile=newFile(destDir.getPath()+"//"
  397. +srcDirFiles[i].getName());
  398. moveFileTo(srcDirFiles[i],oneDestFile);
  399. delFile(srcDirFiles[i]);
  400. }elseif(srcDirFiles[i].isDirectory()){
  401. FileoneDestFile=newFile(destDir.getPath()+"//"
  402. +srcDirFiles[i].getName());
  403. moveFilesTo(srcDirFiles[i],oneDestFile);
  404. delDir(srcDirFiles[i]);
  405. }
  406. }
  407. returntrue;
  408. }
  409. }

getPath与getAbsoultePath的区别:

getAbsolutePath():返回抽象路径名的绝对路径名字符串。

[java] view plain copy
  1. publicstaticvoidtest1(){
  2. Filefile1=newFile(".//test1.txt");
  3. Filefile2=newFile("D://workspace//test//test1.txt");
  4. System.out.println("-----默认相对路径:取得路径不同------");
  5. System.out.println(file1.getPath());
  6. System.out.println(file1.getAbsolutePath());
  7. System.out.println("-----默认绝对路径:取得路径相同------");
  8. System.out.println(file2.getPath());
  9. System.out.println(file2.getAbsolutePath());
  10. }
  11. -----默认相对路径:取得路径不同------
  12. ./test1.txt
  13. D:/workspace/test/./test1.txt
  14. -----默认绝对路径:取得路径相同------
  15. D:/workspace/test/test1.txt
  16. D:/workspace/test/test1.txt
  17. ----------------------------------------------------
  18. publicstaticvoidtest2()throwsException{
  19. Filefile=newFile("..//src//test1.txt");
  20. System.out.println(file.getAbsolutePath());
  21. System.out.println(file.getCanonicalPath());
  22. }
  23. D:/workspace/test/../src/test1.txt
  24. D:/workspace/src/test1.txt
  25. --------------------------------------------
  26. publicstaticvoidtest3()throwsException{
  27. Filefile=newFile("D://Text.txt");
  28. System.out.println(file.getCanonicalPath());

(1),确定D盘下没有Text.txt这个文件,直接执行这段代码,得到的结果是:
D:/Text.txt注意这里试大写的Text.txt
(2)在D盘下建立一个文件,名叫text.txt,再次执行代码,得到结果
D:/text.txt同样的代码得到不同的结果。

更多相关文章

  1. android Intent打开各种类型文件((PDF、word、excel、ppt、chm)
  2. android文件操作的实例
  3. Android 以流的方式读取服务器图片文件
  4. Android 文件浏览器源码
  5. Android文件保存和读取
  6. android Studio导入source文件
  7. android studio 使用adb 命令传递文件到android 设备的方法
  8. Android NDK开发使用以及so文件生成和注意事项
  9. 关于获取Android中文件内容有感

随机推荐

  1. 第一代Android壳源码--某某公司早期壳代
  2. TextWatcher监控EditText (转)
  3. Android中获取屏幕长宽的方法
  4. 检测android机器是否有GPS模块
  5. 仿淘宝商品列表
  6. PHP大文件分割分片上传实现代码
  7. HTTP头隐藏PHP版本号实现过程解析
  8. thinkphp诸多限制条件下如何getshell详解
  9. Nginx+php配置文件及原理解析
  10. 学漫画分镜怎么入门?画漫画分镜的技巧