android的文件操作要有权限:

[xhtml] view plain copy
  1. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

SD卡下的文件操作:

1、判断SD卡是否插入

[java] view plain copy
  1. Environment.getExternalStorageState().equals(
  2. android.os.Environment.MEDIA_MOUNTED);

2、获得sd卡根目录:

[java] view plain copy
  1. FileskRoot=Environment.getExternalStorageDirectory();

私有目录下的文件操作:

1、获得私有根目录:

[java] view plain copy
  1. FilefileRoot=Context.getFilesDir()+"//";

还未整理

文件夹或文件夹操作:

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

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

[java] view plain copy
  1. Stringpath=File.getPath();//相对
  2. Stringpath=File.getAbsoultePath();//绝对

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

[java] view plain copy
  1. StringparentPath=File.getParent();

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

[java] view plain copy
  1. StringName=File.getName();

2、建立文件或文件夹

[java] view plain copy
  1. File.mkDir();//建立文件夹
  2. File.createNewFile();//建立文件

3、判断是文件或文件夹

[java] view plain copy
  1. File.isDirectory()

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

[java] view plain copy
  1. File[]files=File.listFiles();

5、修改文件夹和文件名

[java] view plain copy
  1. File.renameTo(dest);

6、删除文件夹或文件

[java] view plain copy
  1. File.delete();

[java] view plain copy
  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同样的代码得到不同的结果。


转自:http://blog.csdn.net/fenghome/article/details/5668598


更多相关文章

  1. android中加载assets中的资源文件
  2. Android开发 - 丰富常用的颜色文件colors.xml
  3. 学习Android之setDataAndType(利用第三方应用程序打开各种文件)
  4. 根据文件名称修改安卓默认的蓝牙接收文件地址
  5. 赵雅智_AndroidManifest.xml配置文件详解
  6. 通过xml布局文件实现按钮改变焦点设置背景图片

随机推荐

  1. Android有用代码片段(四)
  2. Android(安卓)打包
  3. 【Android布局】在程序中设置android:gra
  4. Android(安卓)TextView内容过长加省略号,
  5. 【Android布局】在程序中设置android:gra
  6. Android系统自带样式(android:theme)解析
  7. 【Android布局】在程序中设置android:gra
  8. android中activity全屏的方法
  9. Android记事本NotePad应用功能拓展(四)
  10. 获取Android(安卓)SDK 源代码并在Eclipse