2012-03-07 7 views
4

je veux verrouiller le dossier particulier, et j'ai le code mais le « java.io.FileNotFoundException: (accès refusé) » erreur se trouvecomment mettre en œuvre le verrouillage du dossier en java

public class Folder_Lock { 

    public static void main(String[] args) { 

    FileLock lock = null; 
    FileChannel channel = null; 
     try { 
      // Get a file channel for the file 

      File file = new File("C:\\Users\\kaizen\\Desktop\\mani1"); 

      channel = new RandomAccessFile(file, "rw").getChannel(); 

      // Use the file channel to create a lock on the file. 
      // This method blocks until it can retrieve the lock. 
      lock = channel.lock(); 

      // Try acquiring the lock without blocking. This method returns 
      // null or throws an exception if the file is already locked. 
      try { 

       lock = channel.tryLock(); 

      } catch (OverlappingFileLockException e) { 

       // File is already locked in this thread or virtual machine 
      } 

      // Release the lock 


     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if (lock!=null) try { lock.release(); } catch (IOException e) { } 
      // Close the file 
      if (channel!=null) try { channel.close(); } catch (IOException e) { } 
     } 

    } 
} 

peut-on résoudre le problème

+4

Je prendrais cela plus au sérieux si elle n'avait pas 'catch (Exception e) {}' à la fin. – skaffman

+0

Mani1 est-il un fichier? Si oui, avez-vous un accès en écriture? La trace de la pile exacte serait utile ... Pour répondre à la dernière question, je suggère d'imprimer quelques informations sur e ... –

Répondre

0

essayez d'exécuter votre dossier throught admin ou First Run IDE en tant qu'administrateur et l'exécution du fichier depuis ur dans C:/l'autorisation d'accès au système est nécessaire

2

Vous devez ajouter un gestionnaire d'exception pour gérer la exception. Dans

File file = new File("C:\\Users\\kaizen\\Desktop\\mani1.addExtension"); 

Cela va résoudre votre problème.

+1

Ajout d'extension ne résoudra pas le problème de l'utilisateur.User torying pour définir le verrouillage sur le niveau de répertoire qui est pas possible avec le code qu'il a ecrit.User essaye d'acquerir de dir peut-etre et donc echouer. – xyz

Questions connexes