Merge test folder of test branch
[iotivity.git] / test / src / automation / robot / device_lib / src / org / iotivity / test / rfw / common / util / FileUtil.java
1 /******************************************************************
2  *
3  * Copyright 2018 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  *
20  ******************************************************************/
21
22 package org.iotivity.test.rfw.common.util;
23
24 import java.io.BufferedReader;
25 import java.io.File;
26 import java.io.FileInputStream;
27 import java.io.FileOutputStream;
28 import java.io.IOException;
29 import java.io.FileNotFoundException;
30 import java.io.InputStream;
31 import java.io.InputStreamReader;
32 import java.io.OutputStream;
33
34 public class FileUtil {
35
36     public static void changeWorkingDir(String path) {
37         System.setProperty("user.dir", path);
38     }
39
40     public static String getWorkingDir() {
41         return new File(".").getAbsolutePath();
42     }
43
44     public static boolean isDir(String path) {
45         File file = new File(path);
46
47         return file.isDirectory();
48     }
49
50     public static boolean isExist(String path) {
51         File file = new File(path);
52
53         return file.exists();
54     }
55
56     public static boolean copy(String source, String dest) {
57         if (isDir(source))
58             return copyDir(source, dest);
59         else
60             return copyFile(source, dest);
61     }
62
63     public static boolean move(String source, String dest) {
64         File srcFile = new File(source);
65
66         return srcFile.renameTo(new File(dest));
67     }
68
69     public static boolean remove(String path) {
70         if (isDir(path))
71             return removeDir(path);
72         else
73             return removeFile(path);
74     }
75
76     public static boolean createFile(String desFile) {
77         File newFile = new File(desFile);
78
79         try {
80             return newFile.createNewFile();
81         } catch (IOException e) {
82             e.printStackTrace();
83             return false;
84         }
85     }
86
87     public static boolean makeDir(String path) {
88         File desDir = new File(path);
89         if (desDir.exists())
90             return true;
91
92         return desDir.mkdirs();
93     }
94
95     @SuppressWarnings("resource")
96     public static boolean IsExistWordInFile(String word, String path) {
97         FileInputStream fis = null;
98         boolean isSucceed = false;
99         try {
100             fis = new FileInputStream(path);
101             BufferedReader br = new BufferedReader(new InputStreamReader(fis));
102             String line;
103             while ((line = br.readLine()) != null) {
104                 if (line.contains(word)) {
105                     isSucceed = true;
106                     break;
107                 }
108             }
109         } catch (Exception e) {
110             e.printStackTrace();
111         } finally {
112             try {
113                 if (fis != null)
114                     fis.close();
115             } catch (IOException e) {
116                 e.printStackTrace();
117             }
118         }
119         return isSucceed;
120     }
121
122     private static boolean copyFile(String source, String destination) {
123         InputStream inStream = null;
124         OutputStream outStream = null;
125         boolean isSucceed = false;
126         try {
127             File desFile = new File(destination);
128             File srcFile = new File(source);
129
130             inStream = new FileInputStream(srcFile);
131             outStream = new FileOutputStream(desFile);
132             byte[] buffer = new byte[1024];
133
134             int length;
135             while ((length = inStream.read(buffer)) > 0) {
136                 outStream.write(buffer, 0, length);
137             }
138             isSucceed = true;
139         } catch (FileNotFoundException e) {
140             e.printStackTrace();
141         } catch (IOException e) {
142             e.printStackTrace();
143         } finally {
144             try {
145                 if (inStream != null)
146                     inStream.close();
147                 if (outStream != null)
148                     outStream.close();
149             } catch (IOException e) {
150                 e.printStackTrace();
151             }
152         }
153         return isSucceed;
154     }
155
156     private static boolean copyDir(String source, String destination) {
157         File desFile = new File(destination);
158         File srcFile = new File(source);
159
160         if (!desFile.exists()) {
161             desFile.mkdir();
162         }
163
164         if (srcFile.listFiles() != null) {
165             for (File f : srcFile.listFiles()) {
166                 return copy(f.getAbsolutePath(),
167                         new File(desFile, f.getName()).getAbsolutePath());
168             }
169         }
170         return false;
171     }
172
173     private static boolean removeDir(String path) {
174         if (path == null)
175             return false;
176
177         File desDir = new File(path);
178         if (desDir.exists() && desDir.listFiles() != null) {
179             for (File f : desDir.listFiles()) {
180                 if (f.isDirectory()) {
181                     removeDir(f.getAbsolutePath());
182                     f.delete();
183                 } else {
184                     f.delete();
185                 }
186             }
187
188             return desDir.delete();
189         }
190
191         return true;
192     }
193
194     private static boolean removeFile(String file) {
195         File desFile = new File(file);
196         boolean result = false;
197         if (desFile.exists()) {
198             try {
199                 result = desFile.delete();
200             } catch (Exception ex) {
201                 return false;
202             }
203         }
204
205         return result;
206     }
207 }