]>
git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/FileOperation.java
3 The file is used to provides interfaces for file operations
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 package org
.tianocore
.frameworkwizard
.common
;
18 import java
.io
.FileInputStream
;
19 import java
.io
.FileOutputStream
;
20 import java
.io
.InputStream
;
22 public class FileOperation
{
30 public static void main(String
[] args
) throws Exception
{
31 FileOperation
.newFolder("C:\\aaa\\aaa\\aaa\\aaa\\aaa");
37 @param folderPath The folder path to be created
41 public static void newFolder(String folderPath
) throws Exception
{
42 folderPath
= Tools
.convertPathToCurrentOsType(folderPath
);
43 File f
= new File(folderPath
);
50 @param filePath The file path to be deleted
54 public static void delFile(String filePath
) throws Exception
{
55 File f
= new File(filePath
);
62 Delete a folder and all its files
64 @param filePath The name of the folder which need be deleted
68 public static void delFolder(String filePath
) throws Exception
{
69 File f
= new File(filePath
);
73 if (!f
.isDirectory()) {
80 Delete a folder and all its files
82 @param fleFolderName The name of the folder which need be deleted
84 @retval true - Delete successfully
85 @retval false - Delete successfully
88 private static boolean delFolder(File fileName
) throws Exception
{
89 boolean blnIsDeleted
= true;
91 File
[] aryAllFiles
= fileName
.listFiles();
93 for (int indexI
= 0; indexI
< aryAllFiles
.length
; indexI
++) {
95 if (aryAllFiles
[indexI
].isDirectory()) {
97 //If is a directory, recursively call this function to delete sub folders
99 blnIsDeleted
= delFolder(aryAllFiles
[indexI
]);
100 } else if (aryAllFiles
[indexI
].isFile()) {
102 //If is a file, delete it
104 if (!aryAllFiles
[indexI
].delete()) {
105 blnIsDeleted
= false;
124 public static void copyFile(String oldPath
, String newPath
) throws Exception
{
125 oldPath
= Tools
.convertPathToCurrentOsType(oldPath
);
126 newPath
= Tools
.convertPathToCurrentOsType(newPath
);
129 File oldFile
= new File(oldPath
);
131 File newFile
= new File(Tools
.getFilePathOnly(newPath
));
132 if (!newFile
.exists()) {
133 newFolder(Tools
.getFilePathOnly(newPath
));
136 if (oldFile
.exists()) {
137 InputStream is
= new FileInputStream(oldPath
);
138 FileOutputStream fos
= new FileOutputStream(newPath
);
139 byte[] buffer
= new byte[1024];
141 while ((byteCount
= is
.read(buffer
)) != -1) {
142 fos
.write(buffer
, 0, byteCount
);
157 public static void copyFolder(String oldPath
, String newPath
) throws Exception
{
158 File oldFile
= new File(oldPath
);
161 // Create new file path first
165 String
[] files
= oldFile
.list();
167 for (int index
= 0; index
< files
.length
; index
++) {
168 if (oldPath
.endsWith(DataType
.FILE_SEPARATOR
)) {
169 temp
= new File(oldPath
+ files
[index
]);
171 temp
= new File(oldPath
+ DataType
.FILE_SEPARATOR
+ files
[index
]);
175 FileInputStream fis
= new FileInputStream(temp
);
176 FileOutputStream fos
= new FileOutputStream(newPath
+ DataType
.FILE_SEPARATOR
177 + (temp
.getName()).toString());
178 byte[] b
= new byte[1024 * 5];
180 while ((len
= fis
.read(b
)) != -1) {
181 fos
.write(b
, 0, len
);
187 if (temp
.isDirectory()) {
188 copyFolder(oldPath
+ DataType
.FILE_SEPARATOR
+ files
[index
], newPath
+ DataType
.FILE_SEPARATOR