2016-10-24 5 views
0

J'écris plusieurs fonctions pour copier, déplacer et renommer un fichier téléchargé. Le fichier a été copié, déplacé et renommé avec succès, mais génère toujours une erreur. L'erreur pointe vers le <cffile action=copy>, même si le fichier téléchargé a été copié avec succès, déplacé vers le répertoire de destination et également renommé. Je ne peux pas savoir ce qui cause cette erreur. Si cela est pertinent, mon système d'exploitation est Unix et j'utilise CF10.Copier, déplacer et renommer des fichiers provoque java.io.FileNotFoundException: (Aucun fichier ou répertoire)

Puisque je vais beaucoup utiliser cette fonctionnalité, j'ai créé plusieurs fonctions dans un composant. J'ai dans mon modèle d'appel (GLD_BCP.cfm):

<CFSET destinationPath = "/home/space/users/www/DestFolder/Archive 
    /#Trim(session.username)#/"> 
<CFSET SourcePath = "/home/space/users/www/DestFolder 
    /#Trim(session.username)#"> 
<CFSET FileName = "#FileName#"><!--- Filename with extension ---> 
<CFSET MoveToPath = "/home/space/users/www/DestFolder/Archive2 
    /#Trim(session.username)#/"> 

fonctions d'appel:

<CFSET FileObj = New 
MainComp.BCP_FileData('#Trim(session.username)#','#Trim(year)#') > 

<CFSET FileObj.CopyFile('#Trim(SourcePath)#','#Trim(destinationPath)#', 
'#Trim(FileName)#')> 

<CFSET FileObj.MoveFile('#Trim(SourcePath)#','#Trim(MoveToPath)#', 
'#Trim(FileName)#')> 

<CFSET FileObj.RenameFile('#Trim(MoveToPath)#', '#Trim(MoveToPath)#', 
'#Trim(FileName)#')> 

CFC:

<CFFUNCTION name="CopyFile"> 
     <cfargument name="SourcePath" type="String" required="TRUE"> 
     <cfargument name="destinationPath" type="String" required="TRUE"> 
     <cfargument name="FileName" type="String" required="TRUE"> 

     <cffile action = "copy" source = "#Trim(arguments.SourcePath)#/#Trim(arguments.FileName)#" destination = "#Trim(arguments.destinationPath)#"/> 
</CFFUNCTION> 


<CFFUNCTION name="MoveFile"> 
     <cfargument name="SourcePath" type="String" required="TRUE"> 
     <cfargument name="destinationPath" type="String" required="TRUE"> 
     <cfargument name="FileName" type="String" required="TRUE"> 
     <!--- move ---> 
     <cffile action = "move" source = "#Trim(arguments.SourcePath)#/#Trim(arguments.FileName)#" destination = "#Trim(arguments.destinationPath)#"/> 

</CFFUNCTION> 



    <CFFUNCTION name="RenameFile"> 
     <cfargument name="SourcePath" type="String" required="TRUE"> 
     <cfargument name="destinationPath" type="String" required="TRUE"> 
     <cfargument name="FileName" type="String" required="TRUE"> 

     <cffile action = "rename" source = "#Trim(arguments.SourcePath)#/#Trim(arguments.FileName)#" destination = "#Trim(arguments.destinationPath)#/#Trim(variable.UserGroup)#_GLFeed.txt"/> 
</CFFUNCTION> 

Erreur:

An exception occurred when performing a file operation copy on files  
/home/space/users/www/DestFolder/CC/TESTFILE.TXT and /home/space/users 
/www/DsetFolder/Archive/CC/. 

The cause of this exception was: java.io.FileNotFoundException: 
/home/space/users/www/DestFolder/CC/TESTFILE.TXT (No such file or 
directory). 

The error occurred in /home/space/users/www/webdocsec/MainComp 
/BCP_FileData.cfc: line 25 
Called from /home/space/users/www/webdocsec/GLD/GLD_BCP.cfm: line 32 
Called from /home/space/users/www/webdocsec/MainComp/BCP_FileData.cfc: 
line 25 
Called from /home/space/users/www/webdocsec/GLD/GLD_BCP.cfm: line 32 

23 : 
24 :      
25 : <cffile action = "copy" source = 
    "#Trim(arguments.SourcePath)#/#Trim(arguments.FileName)#" destination 
    = "#Trim(arguments.destinationPath)#"/> 
26 :   </CFFUNCTION> 
27 : 
+0

Donc, est-ce que '/ home/space/users/www/DestFolder/CC/TESTFILE.TXT' existe ou non? – gravity

+0

Il semble que vous n'ayez pas le chemin correct. Vous n'avez pas besoin d'ajouter une lettre de lecteur ou un nom de volume? Dans cfInclude, si vous utilisez un chemin relatif commençant par/il va chercher dans la racine du site, pas le hdd. Donc, vous pourriez être en train de courir dans quelque chose comme ça ici. – Jules

+0

ce chemin existe. Le fichier que j'ai téléchargé a été renommé, déplacé et copié dans le répertoire prévu. Tout fonctionne mais pourquoi cette erreur apparaît à la fin? devrais-je ne pas utiliser/au début du chemin? – user3779216

Répondre

0

Je vois une typo:

An exception occurred when performing a file operation copy on files /home/space/users/www/DestFolder/CC/TESTFILE.TXT and /home/space/users/www/DsetFolder/Archive/CC/.

DsetFolder doit être DestFolder.

+0

J'ai édité ce merci, mais toujours eu la même erreur – user3779216

0

Juste j'ai vérifié avec votre code et supplémentaire ajouté expandPath() sur toutes les destinations de destinations et le chemin source. Les fonctions copier, déplacer et renommer les fichiers fonctionnent bien. C'est bon.

Le code suivant que j'ai essayé dans mon local,

<CFFUNCTION name="CopyFile"> 
    <cfargument name="SourcePath" type="String" required="TRUE"> 
    <cfargument name="destinationPath" type="String" required="TRUE"> 
    <cfargument name="FileName" type="String" required="TRUE"> 
    <!--- Copy ---> 
    <cffile action = "copy" source = "#expandpath(Trim(arguments.SourcePath))#/#Trim(arguments.FileName)#" destination = "#expandpath(Trim(arguments.destinationPath))#"/> 
</CFFUNCTION> 

<CFFUNCTION name="MoveFile"> 
    <cfargument name="SourcePath" type="String" required="TRUE"> 
    <cfargument name="destinationPath" type="String" required="TRUE"> 
    <cfargument name="FileName" type="String" required="TRUE"> 
    <!--- Move ---> 
    <cffile action = "move" source = "#expandpath(Trim(arguments.SourcePath))#/#Trim(arguments.FileName)#" destination = "#expandpath(Trim(arguments.destinationPath))#"/> 

</CFFUNCTION> 

<CFFUNCTION name="RenameFile"> 
    <cfargument name="SourcePath" type="String" required="TRUE"> 
    <cfargument name="destinationPath" type="String" required="TRUE"> 
    <cfargument name="FileName" type="String" required="TRUE"> 
    <!--- Rename Archive 2 ---> 
    <cffile action = "rename" source = "#expandpath(Trim(arguments.SourcePath))#/#Trim(arguments.FileName)#" destination = "#expandpath(Trim(arguments.destinationPath))#/#Trim(variable.UserGroup)#_GLFeed.txt"/> 
</CFFUNCTION> 

J'ai essayé avec mon code ci-dessus, je ne suis pas confronté à des problèmes comme comme vous l'avez mentionné sur. S'il vous plaît essayez ceci et laissez-moi savoir si c'est la bonne solution pour votre problème ou non.

Merci.