2016-08-09 5 views
0

Comment puis-je faire le répertoire choisi du sélecteur de fichiers dans mon répertoire de travail actuel. Je fais un projet qui organise le dossier et trouvé un projet similaire sur Youtube, mais il ne fonctionne que là où le fichier organizer.jar est situé et ce que je veux faire est une interface utilisateur qui sélectionne directement le répertoire de dossiers en utilisant un sélecteur de fichiers que je ne déplacerai ni ne copierai le fichier organizer.jar où que ce soit pour organiser un dossier.Modifier le répertoire de travail en cours

Voici le code:

package my.GUI; 

import java.awt.BorderLayout; 
import java.awt.Component; 
import java.awt.Dimension; 
import java.io.File; 
import java.nio.file.CopyOption; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.nio.file.StandardCopyOption; 
import java.util.Arrays; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.JInternalFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 
import javax.swing.border.EmptyBorder; 

/** 
* 
* @author atom 
*/ 
public class GUI extends javax.swing.JFrame { 

/** 
* Creates new form GUI 
*/ 
public GUI() { 
    initComponents(); 
} 
/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jLayeredPane1 = new javax.swing.JLayeredPane(); 
    jPanel1 = new javax.swing.JPanel(); 
    jLabel1 = new javax.swing.JLabel(); 
    direct = new javax.swing.JTextField(); 
    DirView = new javax.swing.JInternalFrame(); 
    jPanel2 = new javax.swing.JPanel(); 
    jPanel3 = new javax.swing.JPanel(); 
    jLabel2 = new javax.swing.JLabel(); 
    jLabel3 = new javax.swing.JLabel(); 
    exten = new javax.swing.JTextField(); 
    folder = new javax.swing.JTextField(); 
    jButton1 = new javax.swing.JButton(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(0, 0, 204), null), "Directory")); 

    jLabel1.setText("Select Directory:"); 

    direct.setHorizontalAlignment(javax.swing.JTextField.CENTER); 
    direct.setText("<<<== Click Me ==>>>"); 
    direct.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseClicked(java.awt.event.MouseEvent evt) { 
      directMouseClicked(evt); 
     } 
    }); 

    DirView.setVisible(true); 

    javax.swing.GroupLayout DirViewLayout = new javax.swing.GroupLayout(DirView.getContentPane()); 
    DirView.getContentPane().setLayout(DirViewLayout); 
    DirViewLayout.setHorizontalGroup(
     DirViewLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 585, Short.MAX_VALUE) 
    ); 
    DirViewLayout.setVerticalGroup(
     DirViewLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 390, Short.MAX_VALUE) 
    ); 

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
    jPanel1.setLayout(jPanel1Layout); 
    jPanel1Layout.setHorizontalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addContainerGap() 
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(DirView) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addComponent(jLabel1) 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
        .addComponent(direct, javax.swing.GroupLayout.DEFAULT_SIZE, 511, Short.MAX_VALUE))) 
      .addContainerGap()) 
    ); 
    jPanel1Layout.setVerticalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel1) 
       .addComponent(direct, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addComponent(DirView) 
      .addContainerGap()) 
    ); 

    jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(0, 0, 204), null), "Instruction")); 

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
    jPanel2.setLayout(jPanel2Layout); 
    jPanel2Layout.setHorizontalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 149, Short.MAX_VALUE) 
    ); 
    jPanel2Layout.setVerticalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 0, Short.MAX_VALUE) 
    ); 

    jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(0, 0, 153), null), "Organizer")); 

    jLabel2.setText("Please Enter Costum Extension:"); 

    jLabel3.setText("Please Enter the Name of the Folder:"); 

    exten.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      extenActionPerformed(evt); 
     } 
    }); 

    jButton1.setText("Let's get Organized"); 
    jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton1ActionPerformed(evt); 
     } 
    }); 

final JFileChooser chooser = new JFileChooser(); 
private void directMouseClicked(java.awt.event.MouseEvent evt) {          

    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    int returnVal = chooser.showOpenDialog(null); 
    if(returnVal == JFileChooser.APPROVE_OPTION) 
    { 
     direct.setText(chooser.getSelectedFile().getAbsolutePath()); 
    } 

    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      File f; 
      f = new File(chooser.getSelectedFile().getAbsolutePath()); 
      FileList fl = new FileList(); 
      Component c2 = fl.getGui(f.listFiles(new  TextFileFilter()),false); 

      JInternalFrame frame = DirView; 
      JPanel gui = new JPanel(new BorderLayout()); 
      gui.add(c2,BorderLayout.CENTER); 
      c2.setPreferredSize(new Dimension(500,280)); 
      gui.setBorder(new EmptyBorder(3,3,3,3)); 
      frame.setContentPane(gui); 
      frame.pack();    
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setVisible(true); 
     } 
    }); 
}         

private void extenActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
}          

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           

**String path = chooser.getSelectedFile().getAbsolutePath();** 
**File file = new File(path);** 
**String[] content = file.list();** 
String tmp = ""; 
int index = 0; 

String ex_user = exten.getText(); 
String name_user = folder.getText(); 

String[] extention = { 
    "jpg", 
    "jpeg", 
    "png", 
    "txt", 
    "pdf", 
    "doc", 
    "docx", 
    "ppt", 
    "pptx", 
    "accdb", 
    "xls", 
    "mdb", 
    "flv", 
    "mov", 
    "mp4", 
    "mpg", 
    "3gp", 
    "webm", 
    "exe", 
    "msi", 
    "rar", 
    "zip", 
    "7zip", 
    "tar", 
    "gz", 
    "mp3", 
    "wmv", 
    "txt", 
    "html" }; 

String[] Folder_name = { 
    "Images", 
    "Images", 
    "Images", 
    "Text Files", 
    "Books", 
    "MS Documents", 
    "MS Documents", 
    "MS Documents", 
    "MS Documents", 
    "MS Documents", 
    "MS Documents", 
    "MS Documents", 
    "Video Files", 
    "Video Files", 
    "Video Files", 
    "Video Files", 
    "Video Files", 
    "Video Files", 
    "Setup", 
    "Setup", 
    "Archives", 
    "Archives", 
    "Archives", 
    "Archives", 
    "Archives", 
    "Audio", 
    "Audio", 
    "Text Files", 
    "Web Pages" }; 
try 
{ 
    if (!ex_user.equals("")) 
    { 
    extention = new String[1]; 
    extention[0] = ex_user; 

    Folder_name = new String[1]; 
    Folder_name[0] = name_user; 
    } 
} 
catch (NullPointerException ex) 
{ 
    JOptionPane.showMessageDialog(null, "You Cancel the Operation"); 
    System.exit(1); 
} 
String[] ex = unique(getEx(content)); 
for (int i = 0; i < ex.length; i++) { 
    if (Arrays.asList(extention).contains(ex[i])) 
    { 
    index = Arrays.asList(extention).indexOf(ex[i]); 
    tmp = createFolder(Folder_name[index]); 
    process(ex[i], tmp, content); 
    } 
} 
JOptionPane.showMessageDialog(null, "your files is now orgnized"); 

}

public static void process(String ex, String d, String[] content) 
{ 
File tmp = new File(""); 
for (int i = 0; i < content.length; i++) { 
    if ((!tmp.isDirectory()) && (content[i].endsWith(ex))) 
    { 
    tmp = new File(content[i]); 
    move(tmp.getAbsolutePath(), genrate(tmp.getAbsolutePath()) + d + "\\" +  content[i]); 
    } 
} 

}

public static void move(String from, String to) 
{ 
Path From = Paths.get(from, new String[0]); 
Path To = Paths.get(to, new String[0]); 
try 
{ 
    Files.move(From, 
    To, new CopyOption[] { StandardCopyOption.ATOMIC_MOVE }); 
} 
catch (Exception ex) 
{ 
    System.err.println(ex.getMessage()); 
} 
} 

public static String genrate(String path) 
{ 
String[] x = path.split("\\\\"); 
String result = ""; 
for (int i = 0; i < x.length - 1; i++) { 
    result = result + x[i] + "\\"; 
} 
return result; 
} 

public static String[] getEx(String[] a) 
{ 
String tmp = ""; 
String tmp2 = ""; 
String[] ex = new String[a.length]; 
for (int i = 0; i < a.length; i++) 
{ 
    for (int j = a[i].length() - 1; j >= 0; j--) { 
    tmp = tmp + a[i].charAt(j); 
    } 
    try 
    { 
    tmp = tmp.substring(0, tmp.indexOf('.')); 
    } 
    catch (Exception ee) 
    { 
    tmp = tmp.substring(0, 3); 
    } 
    for (int j = tmp.length() - 1; j >= 0; j--) { 
    tmp2 = tmp2 + tmp.charAt(j); 
    } 
    ex[i] = tmp2; 
    tmp2 = ""; 
    tmp = ""; 

} 
return ex; 
} 

public static String[] unique(String[] x) 
{ 
String a = ""; 
for (int i = 0; i < x.length; i++) { 
    if (!a.contains(x[i])) { 
    a = a + x[i] + " "; 
    } 
} 
return a.split(" "); 
} 

public static String createFolder(String name) 
{ 
File d = new File(name); 
d.mkdir(); 
return name; 


}           

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 

    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info :    javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new GUI().setVisible(true); 
     } 
    });  
} 

// Variables declaration - do not modify      
private javax.swing.JInternalFrame DirView; 
private javax.swing.JTextField direct; 
private javax.swing.JTextField exten; 
private javax.swing.JTextField folder; 
private javax.swing.JButton jButton1; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JLabel jLabel3; 
private javax.swing.JLayeredPane jLayeredPane1; 
private javax.swing.JPanel jPanel1; 
private javax.swing.JPanel jPanel2; 
private javax.swing.JPanel jPanel3; 
// End of variables declaration     
} 

ici est la sortie quand je le lance dans NetBeans:

C:\Users\atom\Desktop\HomeMFS\28_days_later.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\28_days_later.zip 
C:\Users\atom\Desktop\HomeMFS\47777.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\47777.zip 
C:\Users\atom\Desktop\HomeMFS\apache-tomcat-8.0.36-windows-x64.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\apache-tomcat-8.0.36-windows-x64.zip 
C:\Users\atom\Desktop\HomeMFS\apache-tomcat-9.0.0.M8-windows-x64.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\apache-tomcat-9.0.0.M8-windows-x64.zip 
C:\Users\atom\Desktop\HomeMFS\Common_1.0.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Common_1.0.zip 
C:\Users\atom\Desktop\HomeMFS\DocumentExplorer_src.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\DocumentExplorer_src.zip 
C:\Users\atom\Desktop\HomeMFS\ds_digital.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\ds_digital.zip 
C:\Users\atom\Desktop\HomeMFS\DuplicateFinder_src.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\DuplicateFinder_src.zip 
C:\Users\atom\Desktop\HomeMFS\fast-md5-2.7.1.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\fast-md5-2.7.1.zip 
C:\Users\atom\Desktop\HomeMFS\FIUI_Tuyen_HNQ.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\FIUI_Tuyen_HNQ.zip 
C:\Users\atom\Desktop\HomeMFS\Game of Thrones_6x05_HDTV.en.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game of Thrones_6x05_HDTV.en.zip 
C:\Users\atom\Desktop\HomeMFS\Game.of.Thrones.S06E01.720p.HDTV.SVA.en_1.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game.of.Thrones.S06E01.720p.HDTV.SVA.en_1.zip 
C:\Users\atom\Desktop\HomeMFS\Game.of.Thrones.S06E02.720p.Web-DL.NTb.en.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game.of.Thrones.S06E02.720p.Web-DL.NTb.en.zip 
C:\Users\atom\Desktop\HomeMFS\Game.of.Thrones.S06E03.720p.HDTV.AVS.en.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game.of.Thrones.S06E03.720p.HDTV.AVS.en.zip 
C:\Users\atom\Desktop\HomeMFS\Game.of.Thrones.S06E04.720p.HDTV.AVS.en.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game.of.Thrones.S06E04.720p.HDTV.AVS.en.zip 
C:\Users\atom\Desktop\HomeMFS\Game.of.Thrones.S06E05.1080p.HDTV.BATV.en.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game.of.Thrones.S06E05.1080p.HDTV.BATV.en.zip 
C:\Users\atom\Desktop\HomeMFS\Game.of.Thrones.S06E05.WEBRip.en.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Game.of.Thrones.S06E05.WEBRip.en.zip 
C:\Users\atom\Desktop\HomeMFS\GroupDocs.Viewer-for-Java-master.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\GroupDocs.Viewer-for-Java-master.zip 
C:\Users\atom\Desktop\HomeMFS\javaplanner-v1.5-gpl (1).zip -> C:\Users\atom\Desktop\HomeMFS\Archives\javaplanner-v1.5-gpl (1).zip 
C:\Users\atom\Desktop\HomeMFS\KK PATCH BY @AKSHAYGALAXYSTARMOD.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\KK PATCH BY @AKSHAYGALAXYSTARMOD.zip 
C:\Users\atom\Desktop\HomeMFS\oc4j_extended_101350.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\oc4j_extended_101350.zip 
C:\Users\atom\Desktop\HomeMFS\pa_gapps-stock-4.4.4-20150410-signed.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\pa_gapps-stock-4.4.4-20150410-signed.zip 
C:\Users\atom\Desktop\HomeMFS\Reminder.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\Reminder.zip 
C:\Users\atom\Desktop\HomeMFS\tut.zip -> C:\Users\atom\Desktop\HomeMFS\Archives\tut.zip 
C:\Users\atom\Desktop\HomeMFS\ce2.23.tar -> C:\Users\atom\Desktop\HomeMFS\Archives\ce2.23.tar 
C:\Users\atom\Desktop\HomeMFS\ce2.23.tar.gz -> C:\Users\atom\Desktop\HomeMFS\Archives\ce2.23.tar.gz 
C:\Users\atom\Desktop\HomeMFS\File-Orgnizer-Version-2.5.rar -> C:\Users\atom\Desktop\HomeMFS\Archives\File-Orgnizer-Version-2.5.rar 
C:\Users\atom\Desktop\HomeMFS\HomeMFS.rar -> C:\Users\atom\Desktop\HomeMFS\Archives\HomeMFS.rar 
C:\Users\atom\Desktop\HomeMFS\rufus-2.10p.exe -> C:\Users\atom\Desktop\HomeMFS\Setup\rufus-2.10p.exe 
C:\Users\atom\Desktop\HomeMFS\SOFTWARE PROTOTYPING.ppt -> C:\Users\atom\Desktop\HomeMFS\MS Documents\SOFTWARE PROTOTYPING.ppt 
BUILD SUCCESSFUL (total time: 19 seconds) 

Je veux organiser le dossier de téléchargement, mais il fonctionne sur le bureau où se trouve le dossier du projet.

+0

S'il vous plaît quelqu'un? quelqu'un m'aide... –

Répondre

0

Je l'ai eu. Je viens d'ajouter .getAbsoluteFile() au fichier que je veux et cela fonctionne ...