2009-09-07 6 views
1

Je souhaite copier un fichier dans le répertoire cible. Il est simple avec la commande copyFile de l'objet Système de fichiers. Mais j'ai besoin d'une amélioration comme,Comment créer une structure de répertoire cible pour les fichiers de copie en ASP classique?

Si le répertoire cible n'existe pas, il créera le répertoire cible, puis copiera un fichier.

Pouvez-vous m'aider à y parvenir? Faites-moi savoir s'il y a d'autres façons de faire la même chose.

Merci.

Solution:

'Create folder if it doesn't exist 
If not oFSO.FolderExists(sDestinationFolder) then 
    oFSO.CreateFolder(sDestinationFolder) 
End If 
+0

@Vikas: Il est déroutant de voir la solution dans votre question, commentant juste que vous » Nous avons enlevé l'ensemble à rien sur la réponse aurait été suffisant. – AnthonyWJones

Répondre

2

Ceci est ma fonction de base pour ce poste: -

Dim gfso : Set gfso = Server.CreateObject("Scripting.FileSystemObject") 

Public Sub CreateFolder(path) 

    If Len(path) = 0 Then Err.Raise 1001, , "Creating path: " & path & " failed" 

    If Not gfso.FolderExists(path) Then 
    CreateFolder gfso.GetParentFolderName(path) 
    gfso.CreateFolder path 
    End If 

End Sub 
+0

Ooo, récursif - c'est PARFAIT! – BlueSix

1

Quelque chose comme ceci:

Set fs=Server.CreateObject("Scripting.FileSystemObject") 

//Create folder if it doesn't exist 
If fs.FolderExists("YOURFOLDERPATH") != true Then 
    Set f=fs.CreateFolder("YOURFOLDERPATH") 
    Set f=nothing 
End If 

//Copy your file 

set fs=nothing 

W3Schools a beaucoup d'exemples sur la façon d'utiliser le FileSystemObject [ici] [1].

EDIT:

Set fs=Server.CreateObject("Scripting.FileSystemObject") 

folders = Split("YOURFOLDERPATH", "\") 
currentFolder = "" 

//Create folders if they don't exist 
For i = 0 To UBound(folders) 
    currentFolder = currentFolder & folders(i) 
    If fs.FolderExists(currentFolder) != true Then 
     Set f=fs.CreateFolder(currentFolder) 
     Set f=nothing  
    End If  
    currentFolder = currentFolder & "\" 
Next 

//Copy your file 

set fs=nothing 
+0

Eh bien, cela ne fonctionne que s'il y a exactement un dossier à créer. J'ai besoin de cela pour travailler pour plusieurs créer un dossier. par exemple./export/new/new1/new2 etc. et considère que seul le dossier d'exportation est présent. – Vikas

+0

Mon VB est plus qu'un peu rouillé, mais ne serait-ce pas (voir ma dernière édition) de travail? – Tchami

Questions connexes