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 :
Donc, est-ce que '/ home/space/users/www/DestFolder/CC/TESTFILE.TXT' existe ou non? – gravity
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
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