Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.93 KB | None | 0 0
  1. package deleteme;
  2.  
  3. import java.io.File;
  4. import java.io.FilenameFilter;
  5. import java.nio.file.Files;
  6. import java.nio.file.Path;
  7. import java.nio.file.attribute.AclEntry;
  8. import java.nio.file.attribute.AclEntryPermission;
  9. import java.nio.file.attribute.AclFileAttributeView;
  10. import java.nio.file.attribute.BasicFileAttributes;
  11. import java.nio.file.attribute.UserPrincipal;
  12. import java.util.List;
  13. import java.util.Set;
  14.  
  15. public class FilenameExluder implements FilenameFilter {
  16.  
  17.     Set<String> excluded;
  18.  
  19.     public FilenameExluder(Set<String> excluded) {
  20.         this.excluded = excluded;
  21.     }
  22.  
  23.     @Override
  24.     public boolean accept(File dir, String name) {
  25.         boolean accept = !this.excluded.contains(name);
  26.         if (!accept) {
  27.             System.err.printf("Exclude %s!%n", name);
  28.             File file = new File(dir, name);
  29.             try {
  30.                 Path path = file.toPath();
  31.  
  32.                 //show windows basic file attribute data
  33.                 BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
  34.                 System.err.println("creationTime: " + attr.creationTime());
  35.                 System.err.println("lastAccessTime: " + attr.lastAccessTime());
  36.                 System.err.println("lastModifiedTime: " + attr.lastModifiedTime());
  37.  
  38.                 //show windows acl stuff
  39.                 AclFileAttributeView view = Files.getFileAttributeView(path, AclFileAttributeView.class);
  40.                 if (view != null) {
  41.                     try {
  42.                         List<AclEntry> acls = view.getAcl();
  43.                         if (acls != null) {
  44.                             for (AclEntry acl : acls) {
  45.                                 UserPrincipal principle = acl.principal();
  46.                                 if (principle != null) {
  47.                                     String userOrGroup = acl.principal().getName();
  48.                                     Set<AclEntryPermission> permissions = acl.permissions();
  49.                                     if (permissions != null) {
  50.                                         for (AclEntryPermission permission : permissions) {
  51.                                             System.err.printf("file: %s, user: %s, perm: %s%n", file.getName(), userOrGroup, permission.toString());
  52.                                         }
  53.                                     }
  54.                                 }
  55.                             }
  56.                         }
  57.                     } catch (Exception e) {
  58.                         e.printStackTrace();
  59.                     }
  60.                 }
  61.  
  62.             } catch (Exception e) {
  63.                 System.err.printf("Oh snap!.. that sucked.. %s", e.getLocalizedMessage());
  64.                 e.printStackTrace();
  65.             }
  66.  
  67.         }
  68.         return accept;
  69.     }
  70.  
  71. }
  72.  
  73.  
  74. package deleteme;
  75.  
  76. import java.io.File;
  77. import java.util.HashSet;
  78. import java.util.Set;
  79. import java.util.Stack;
  80.  
  81. public class FindFiles implements Runnable {
  82.  
  83.     public static void main(String[] args) {
  84.        
  85.         FindFiles worker = new FindFiles();
  86.         worker.run();
  87.     }
  88.  
  89.     @Override
  90.     public void run() {
  91.         buildDecendants();
  92.         doPost();
  93.     }
  94.    
  95.     Set<String> excludeList = new HashSet<>();
  96.    
  97.     public void doPost() {
  98.  
  99.         //build unc
  100.         File root = new File(".");
  101.        
  102.        
  103.         Stack<String> stack = new Stack<>();
  104.         stack.push(root.getAbsolutePath());
  105.         while (!stack.isEmpty()) {
  106.             File next = new File(stack.pop());
  107.             boolean isFile = next.isFile();
  108.             System.out.printf("[type: %s] [path: %s]%n", (isFile ? "file" : "dir"), next.getAbsolutePath());
  109.             if (!isFile) {
  110.                 String [] childnames = next.list(new FilenameExluder(excludeList));
  111.                 if (childnames != null) {
  112.                     for (String childname : childnames) {
  113.                         File fChild = new File(next, childname);
  114.                         stack.push(fChild.getAbsolutePath());
  115.                     }
  116.                 }
  117.             }
  118.         }        
  119.     }
  120.    
  121.     public void buildDecendants() {
  122.         //do some work
  123.         excludeList.add("MessagesBundle_en_US.properties");
  124.         excludeList.add("FindVMWithPublishToHostEnabled.java");
  125.     }
  126. }
  127.  
  128.  
  129.  
  130. run:
  131. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/.]
  132. Exclude MessagesBundle_en_US.properties!
  133. creationTime: 2018-10-27T05:13:58Z
  134. lastAccessTime: 2019-01-30T03:30:08Z
  135. lastModifiedTime: 2018-10-27T05:14:03Z
  136. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src]
  137. Exclude MessagesBundle_en_US.properties!
  138. creationTime: 2018-10-27T05:17:50Z
  139. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme]
  140. lastAccessTime: 2019-01-30T03:30:08Z
  141. lastModifiedTime: 2018-10-27T05:17:50Z
  142. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/Folder.java]
  143. Exclude FindVMWithPublishToHostEnabled.java!
  144. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/PdfToWord.java]
  145. creationTime: 2017-07-23T13:44:27Z
  146. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/SomeObject.java]
  147. lastAccessTime: 2019-02-22T04:31:16Z
  148. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/KuafMapping.java]
  149. lastModifiedTime: 2017-07-23T16:22:50Z
  150. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/OcrFile.java]
  151. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/FilenameExluder.java]
  152. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/FindFiles.java]
  153. Exclude MessagesBundle_en_US.properties!
  154. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/DeleteMe.java]
  155. creationTime: 2018-10-27T05:17:50Z
  156. lastAccessTime: 2019-01-31T05:40:38Z
  157. lastModifiedTime: 2019-01-30T04:44:21Z
  158. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/DeleteMe2.java]
  159. Exclude FindVMWithPublishToHostEnabled.java!
  160. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/KuafEntity.java]
  161. creationTime: 2018-08-31T20:34:57Z
  162. lastAccessTime: 2019-01-29T19:31:40Z
  163. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/deleteme/UpdateLicenseFile.java]
  164. lastModifiedTime: 2018-08-31T20:34:57Z
  165. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/MessagesBundle.properties]
  166. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/GenerateCSVFromXML.java]
  167. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/Test.java]
  168. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/MessagesBundle_de_DE.properties]
  169. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/MessagesBundle_fr.properties]
  170. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/Split.java]
  171. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/I18SNSample.java]
  172. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/NotI18N.java]
  173. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./src/PrintHierarcyFromXML.java]
  174. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./paths-full.csv]
  175. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./b64util.html]
  176. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build]
  177. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes]
  178. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/NotI18N.class]
  179. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme]
  180. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/Folder.java]
  181. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/FilenameExluder.class]
  182. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/KuafEntity.class]
  183. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/PdfToWord.java]
  184. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/OcrFile.class]
  185. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/KuafMapping.java]
  186. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/DeleteMe2.class]
  187. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/KuafMapping.class]
  188. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/OcrFile.java]
  189. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/PdfToWord.class]
  190. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/Folder.class]
  191. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/DeleteMe.java]
  192. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/FindVMWithPublishToHostEnabled.class]
  193. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/DeleteMe2.java]
  194. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/DeleteMe.class]
  195. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/UpdateLicenseFile.class]
  196. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/KuafEntity.java]
  197. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/UpdateLicenseFile$1.class]
  198. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/UpdateLicenseFile.java]
  199. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/FindFiles.class]
  200. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/deleteme/SomeObject.class]
  201. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/PrintHierarcyFromXML.class]
  202. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/MessagesBundle.properties]
  203. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/I18SNSample.class]
  204. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/Test.java]
  205. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/MessagesBundle_de_DE.properties]
  206. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/Split.class]
  207. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/MessagesBundle_fr.properties]
  208. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/Split.java]
  209. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/Test.class]
  210. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/GenerateCSVFromXML.class]
  211. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/.netbeans_automatic_build]
  212. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build/classes/.netbeans_update_resources]
  213. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./MessagesBundle.properties]
  214. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject]
  215. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/configs]
  216. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/configs/I18SNSample.properties]
  217. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/configs/PdfToWord.properties]
  218. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/private]
  219. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/private/profiler]
  220. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/private/profiler/settings.xml]
  221. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/private/config.properties]
  222. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/private/private.xml]
  223. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/private/private.properties]
  224. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/project.xml]
  225. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/genfiles.properties]
  226. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/project.properties]
  227. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./nbproject/build-impl.xml]
  228. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib]
  229. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/jdom]
  230. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/jdom/jdom-2.0.6.jar]
  231. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/jdom/jdom-2.0.6-javadoc.jar]
  232. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/jdom/jdom-2.0.6-sources.jar]
  233. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-cells]
  234. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-cells/bcprov-jdk16-146.jar]
  235. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-cells/aspose-cells-17.7.jar]
  236. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-words]
  237. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-words/aspose-words-javadoc.zip]
  238. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-words/aspose-words.jar]
  239. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/Apache_Commons_IO]
  240. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/Apache_Commons_IO/commons-io-2.5-javadoc.jar]
  241. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/Apache_Commons_IO/commons-io-2.5.jar]
  242. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/nblibraries.properties]
  243. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-email]
  244. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-email/aspose-email-17.9-javadoc.jar]
  245. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-email/aspose-email-17.9-jdk16.jar]
  246. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-email/bcprov-jdk15on-1.52.jar]
  247. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/CopyLibs]
  248. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar]
  249. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/apache-log4j-1x]
  250. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/apache-log4j-1x/log4j-1.2.17.jar]
  251. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-pdf]
  252. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-pdf/aspose-pdf.jar]
  253. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./lib/aspose-pdf/aspose-pdf-javadoc.jar]
  254. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./rmclassficiations.csv]
  255. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./MessagesBundle_de_DE.properties]
  256. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./MessagesBundle_fr_FR.properties]
  257. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./metadata.xml]
  258. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./error.log]
  259. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./build.xml]
  260. [type: dir] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./test]
  261. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./names.txt]
  262. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./paths-tabbed.csv]
  263. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./manifest.mf]
  264. [type: file] [path: /Users/ossiemoore/NetBeansProjects/DeleteMe/./logger.properties]
  265. BUILD SUCCESSFUL (total time: 0 seconds)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement