android的文件操作要有权限:

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

SD卡下的文件操作:

1、判断SD卡是否插入

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

2、获得sd卡根目录:

[java] view plain copy print ?
  1. FileskRoot=Environment.getExternalStorageDirectory();
File skRoot = Environment.getExternalStorageDirectory();

私有目录下的文件操作:

1、获得私有根目录:

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

还未整理

文件夹或文件夹操作:

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

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

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

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

[java] view plain copy print ?
  1. StringparentPath=File.getParent();
String parentPath = File.getParent();

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

[java] view plain copy print ?
  1. StringName=File.getName();
String Name = File.getName();

2、建立文件或文件夹

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

3、判断是文件或文件夹

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

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

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

5、修改文件夹和文件名

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

6、删除文件夹或文件

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

[java] view plain copy print ?
  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. }
package otheri.common; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import otheri.io.Input; import otheri.io.Output; import android.content.Context; import android.os.Environment; public class FileHelper { private Context context; private String SDPATH; private String FILESPATH; public FileHelper(Context context) { this.context = context; SDPATH = Environment.getExternalStorageDirectory().getPath() + "//"; FILESPATH = this.context.getFilesDir().getPath() + "//"; } /** * 在SD卡上创建文件 * * @throws IOException */ public File creatSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); file.createNewFile(); return file; } /** * 删除SD卡上的文件 * * @param fileName */ public boolean delSDFile(String fileName) { File file = new File(SDPATH + fileName); if (file == null || !file.exists() || file.isDirectory()) return false; file.delete(); return true; } /** * 在SD卡上创建目录 * * @param dirName */ public File creatSDDir(String dirName) { File dir = new File(SDPATH + dirName); dir.mkdir(); return dir; } /** * 删除SD卡上的目录 * * @param dirName */ public boolean delSDDir(String dirName) { File dir = new File(SDPATH + dirName); return delDir(dir); } /** * 修改SD卡上的文件或目录名 * * @param fileName */ public boolean renameSDFile(String oldfileName, String newFileName) { File oleFile = new File(SDPATH + oldfileName); File newFile = new File(SDPATH + newFileName); return oleFile.renameTo(newFile); } /** * 拷贝SD卡上的单个文件 * * @param path * @throws IOException */ public boolean copySDFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(SDPATH + srcFileName); File destFile = new File(SDPATH + destFileName); return copyFileTo(srcFile, destFile); } /** * 拷贝SD卡上指定目录的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean copySDFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(SDPATH + srcDirName); File destDir = new File(SDPATH + destDirName); return copyFilesTo(srcDir, destDir); } /** * 移动SD卡上的单个文件 * * @param srcFileName * @param destFileName * @return * @throws IOException */ public boolean moveSDFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(SDPATH + srcFileName); File destFile = new File(SDPATH + destFileName); return moveFileTo(srcFile, destFile); } /** * 移动SD卡上的指定目录的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean moveSDFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(SDPATH + srcDirName); File destDir = new File(SDPATH + destDirName); return moveFilesTo(srcDir, destDir); } /* * 将文件写入sd卡。如:writeSDFile("test.txt"); */ public Output writeSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); FileOutputStream fos = new FileOutputStream(file); return new Output(fos); } /* * 在原有文件上继续写文件。如:appendSDFile("test.txt"); */ public Output appendSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); FileOutputStream fos = new FileOutputStream(file, true); return new Output(fos); } /* * 从SD卡读取文件。如:readSDFile("test.txt"); */ public Input readSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); FileInputStream fis = new FileInputStream(file); return new Input(fis); } /** * 建立私有文件 * * @param fileName * @return * @throws IOException */ public File creatDataFile(String fileName) throws IOException { File file = new File(FILESPATH + fileName); file.createNewFile(); return file; } /** * 建立私有目录 * * @param dirName * @return */ public File creatDataDir(String dirName) { File dir = new File(FILESPATH + dirName); dir.mkdir(); return dir; } /** * 删除私有文件 * * @param fileName * @return */ public boolean delDataFile(String fileName) { File file = new File(FILESPATH + fileName); return delFile(file); } /** * 删除私有目录 * * @param dirName * @return */ public boolean delDataDir(String dirName) { File file = new File(FILESPATH + dirName); return delDir(file); } /** * 更改私有文件名 * * @param oldName * @param newName * @return */ public boolean renameDataFile(String oldName, String newName) { File oldFile = new File(FILESPATH + oldName); File newFile = new File(FILESPATH + newName); return oldFile.renameTo(newFile); } /** * 在私有目录下进行文件复制 * * @param srcFileName * : 包含路径及文件名 * @param destFileName * @return * @throws IOException */ public boolean copyDataFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(FILESPATH + srcFileName); File destFile = new File(FILESPATH + destFileName); return copyFileTo(srcFile, destFile); } /** * 复制私有目录里指定目录的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean copyDataFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(FILESPATH + srcDirName); File destDir = new File(FILESPATH + destDirName); return copyFilesTo(srcDir, destDir); } /** * 移动私有目录下的单个文件 * * @param srcFileName * @param destFileName * @return * @throws IOException */ public boolean moveDataFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(FILESPATH + srcFileName); File destFile = new File(FILESPATH + destFileName); return moveFileTo(srcFile, destFile); } /** * 移动私有目录下的指定目录下的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean moveDataFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(FILESPATH + srcDirName); File destDir = new File(FILESPATH + destDirName); return moveFilesTo(srcDir, destDir); } /* * 将文件写入应用私有的files目录。如:writeFile("test.txt"); */ public Output wirteFile(String fileName) throws IOException { OutputStream os = context.openFileOutput(fileName, Context.MODE_WORLD_WRITEABLE); return new Output(os); } /* * 在原有文件上继续写文件。如:appendFile("test.txt"); */ public Output appendFile(String fileName) throws IOException { OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND); return new Output(os); } /* * 从应用的私有目录files读取文件。如:readFile("test.txt"); */ public Input readFile(String fileName) throws IOException { InputStream is = context.openFileInput(fileName); return new Input(is); } /**********************************************************************************************************/ /*********************************************************************************************************/ */ /** * 删除一个文件 * * @param file * @return */ public boolean delFile(File file) { if (file.isDirectory()) return false; return file.delete(); } /** * 删除一个目录(可以是非空目录) * * @param dir */ public boolean delDir(File dir) { if (dir == null || !dir.exists() || dir.isFile()) { return false; } for (File file : dir.listFiles()) { if (file.isFile()) { file.delete(); } else if (file.isDirectory()) { delDir(file);// 递归 } } dir.delete(); return true; } /** * 拷贝一个文件,srcFile源文件,destFile目标文件 * * @param path * @throws IOException */ public boolean copyFileTo(File srcFile, File destFile) throws IOException { if (srcFile.isDirectory() || destFile.isDirectory()) return false;// 判断是否是文件 FileInputStream fis = new FileInputStream(srcFile); FileOutputStream fos = new FileOutputStream(destFile); int readLen = 0; byte[] buf = new byte[1024]; while ((readLen = fis.read(buf)) != -1) { fos.write(buf, 0, readLen); } fos.flush(); fos.close(); fis.close(); return true; } /** * 拷贝目录下的所有文件到指定目录 * * @param srcDir * @param destDir * @return * @throws IOException */ public boolean copyFilesTo(File srcDir, File destDir) throws IOException { if (!srcDir.isDirectory() || !destDir.isDirectory()) return false;// 判断是否是目录 if (!destDir.exists()) return false;// 判断目标目录是否存在 File[] srcFiles = srcDir.listFiles(); for (int i = 0; i < srcFiles.length; i++) { if (srcFiles[i].isFile()) { // 获得目标文件 File destFile = new File(destDir.getPath() + "//" + srcFiles[i].getName()); copyFileTo(srcFiles[i], destFile); } else if (srcFiles[i].isDirectory()) { File theDestDir = new File(destDir.getPath() + "//" + srcFiles[i].getName()); copyFilesTo(srcFiles[i], theDestDir); } } return true; } /** * 移动一个文件 * * @param srcFile * @param destFile * @return * @throws IOException */ public boolean moveFileTo(File srcFile, File destFile) throws IOException { boolean iscopy = copyFileTo(srcFile, destFile); if (!iscopy) return false; delFile(srcFile); return true; } /** * 移动目录下的所有文件到指定目录 * * @param srcDir * @param destDir * @return * @throws IOException */ public boolean moveFilesTo(File srcDir, File destDir) throws IOException { if (!srcDir.isDirectory() || !destDir.isDirectory()) { return false; } File[] srcDirFiles = srcDir.listFiles(); for (int i = 0; i < srcDirFiles.length; i++) { if (srcDirFiles[i].isFile()) { File oneDestFile = new File(destDir.getPath() + "//" + srcDirFiles[i].getName()); moveFileTo(srcDirFiles[i], oneDestFile); delFile(srcDirFiles[i]); } else if (srcDirFiles[i].isDirectory()) { File oneDestFile = new File(destDir.getPath() + "//" + srcDirFiles[i].getName()); moveFilesTo(srcDirFiles[i], oneDestFile); delDir(srcDirFiles[i]); } } return true; } }

getPath与getAbsoultePath的区别:

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

[java] view plain copy print ?
  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());
public static void test1(){ File file1 = new File(".//test1.txt"); File file2 = new File("D://workspace//test//test1.txt"); System.out.println("-----默认相对路径:取得路径不同------"); System.out.println(file1.getPath()); System.out.println(file1.getAbsolutePath()); System.out.println("-----默认绝对路径:取得路径相同------"); System.out.println(file2.getPath()); System.out.println(file2.getAbsolutePath()); } -----默认相对路径:取得路径不同------ ./test1.txt D:/workspace/test/./test1.txt -----默认绝对路径:取得路径相同------ D:/workspace/test/test1.txt D:/workspace/test/test1.txt ---------------------------------------------------- public static void test2() throws Exception{ File file = new File("..//src//test1.txt"); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath()); } D:/workspace/test/../src/test1.txt D:/workspace/src/test1.txt -------------------------------------------- public static void test3() throws Exception{ File file = new File("D://Text.txt"); System.out.println(file.getCanonicalPath());

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

更多相关文章

  1. Android如何在xml布局中使用自定义属性
  2. cocos2d-x android
  3. android 文件管理工具类
  4. Android(安卓)应用文件路径
  5. android 文件管理工具类
  6. Android流量统计代码
  7. Android往SD卡上存储文件
  8. Android的文件系统结构
  9. Android(安卓)5.0WebView选择本地文件

随机推荐

  1. Andorid学习笔记(ADT)-常见的UI布局
  2. Android之Handler用法总结
  3. 用 SDK Manager.exe 无法更新 Android(安
  4. (Android)react-native获得手机的Android版
  5. Android(安卓)Touch 事件的分发和消费机
  6. ListView去掉分割线的几种方法
  7. Android(安卓)获取汉字拼音
  8. Android常用动画alpha和rotate同时使用
  9. Android学习笔记06:线性布局LinearLayout
  10. Android单元测试