Criar uma Pasta e colar um arquivo dentro?

Pessoal, estou tentando criar uma pasta com mac da placa, e depois jogar um arquivo dentro… mas não esta dando certo !

Segue o código…

package com.corejsf;

import static com.corejsf.NetworkInfo.getMacAddress;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;

/**
 *
 * @author Ribamar
 */
@ManagedBean(name = "testeMB")
@ViewScoped
public class TesteUploadManagedBean implements Serializable {

    private UploadedFile file;
    private String fileName = "GrFingerLicenseAgreement.txt";

    public UploadedFile getFile() {
        return file;
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    //Evento que vai setar o arquivo num espaço temporário pra vc poder tratar ele.
    public void handleFileUpload(FileUploadEvent event) {
        file = event.getFile();
    }

    public void importarArq() throws SocketException {
        
        if (file != null) {
            fileName = file.getFileName(); 

//------------------------Lê e cria qualquer formato de arquivo -----------------------------------------            
            byte[] byteFile = file.getContents();
            try {
    
                File dir = new File("C:/teste/"+getMacAddress());  
                boolean result = dir.mkdirs();  
                System.out.println("Criou a pasta: "+getMacAddress());    
                         
                FileOutputStream fos = new FileOutputStream("C:/teste/"+fileName);
                fos.write(byteFile);
                fos.close();
                System.out.println("Criou a Arquivo");
                
            } catch (FileNotFoundException ex) {
                
                Logger.getLogger(TesteUploadManagedBean.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(TesteUploadManagedBean.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {        
                 InetAddress address = InetAddress.getLocalHost();  
                 NetworkInterface ni = NetworkInterface.getByInetAddress(address);  
                    byte[] mac = ni.getHardwareAddress();  
                    for (int i = 0; i < mac.length; i++) {
            }  
      } catch (UnknownHostException e) {  
      } catch (SocketException e) {  
      } 
     }
   }
}

Não está conseguindo = que tipo de coisa acontece que não te permite fazer isso?