
Problema al copiar un fichero de un directorio a otro
Publicado por Zhukov (11 intervenciones) el 21/03/2012 13:10:35
Buenos dias
Tras revisarlo mil veces, finalmente me he decidido a postear aquí a ver si alguno de vosotros ve algo que yo ya por tozudez soy incapaz.
El problema viene dado en mi opinión por algún tipo de conflicto con los permisos de windows espero que la información que os proporciono a continuación sirva de ayuda para solventar el problema.
Gracias a todos.
El error dado es el siguiente:
El codigo que lo provoca es el de la siguiente función:
Como podeis ver, realizo una traza al inicio (en el que el resultado es óptimo ya que los permisos son correctos aunque el resultado final no lo es ya que salta la excepción)
Como siempre gracias a todos por la ayuda prestada
Un saludo
Tras revisarlo mil veces, finalmente me he decidido a postear aquí a ver si alguno de vosotros ve algo que yo ya por tozudez soy incapaz.
El problema viene dado en mi opinión por algún tipo de conflicto con los permisos de windows espero que la información que os proporciono a continuación sirva de ayuda para solventar el problema.
Gracias a todos.
El error dado es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
java.io.FileNotFoundException: C:\pruebas (Acceso denegado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
at java.io.FileOutputStream.<init>(FileOutputStream.java:165)
at Negocio.ControladorFicheros.guardar2(ControladorFicheros.java:401)
at Vista.VPrincipal.VbtnGuardarActionPerformed(VPrincipal.java:215)
at Vista.VPrincipal.access$200(VPrincipal.java:22)
at Vista.VPrincipal$4.actionPerformed(VPrincipal.java:110)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
El codigo que lo provoca es el de la siguiente función:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public void guardar() throws IOException {
File origen = new File ("C:/prueba.png");
File destino = new File ("C:/pruebas");
System.out.println(origen.getPath());
System.out.println("origen.exists()->" + origen.exists());
System.out.println("origen.canWrite-> " + origen.canWrite());
System.out.println("origen.canExecute-> " + origen.canExecute());
System.out.println("origen.canRead-> " + origen.canRead());
System.out.println();
System.out.println(destino.getPath());
System.out.println("destino.exists()->" + destino.exists());
System.out.println("destino.canWrite-> " + destino.canWrite());
System.out.println("destino.canExecute-> " + destino.canExecute());
System.out.println("destino.canRead-> " + destino.canRead());
if(!destino.exists()) {
destino.createNewFile();
}
FileChannel entrada = null;
FileChannel salida = null;
try {
entrada = new FileInputStream(origen).getChannel();
salida = new FileOutputStream(destino).getChannel();
salida.transferFrom(entrada,0, entrada.size());
}
finally {
if(entrada != null) {
entrada.close();
}
if(salida != null) {
salida.close();
}
}
}
Como podeis ver, realizo una traza al inicio (en el que el resultado es óptimo ya que los permisos son correctos aunque el resultado final no lo es ya que salta la excepción)
1
2
3
4
5
6
7
8
9
10
11
C:\prueba.png
origen.exists()->true
origen.canWrite-> true
origen.canExecute-> true
origen.canRead-> true
C:\pruebas
destino.exists()->true
destino.canWrite-> true
destino.canExecute-> true
destino.canRead-> true
Como siempre gracias a todos por la ayuda prestada
Un saludo
Valora esta pregunta


0