| auteur : Didier Danse |
Pour lister les fichiers d'un répertoire ou pour accéder à une base de données
Access, il nous est parfois nécessaire de savoir l'adresse exacte du répertoire
physique dans lequel se trouve l'application.
Cela est possible à l'aide de:
Dim PhysicalPath As String = Server . MapPath (" nomfichier.mdb " )
|
Cet exemple initialisera PhysicalPath avec l'adresse physique du fichier nomfichier.mdb.
|
| auteur : johngt | Dans cet exemple nous alons voir comment uploader un fichier sur le serveur via une page ASP.NET.
Tout d'abord on place un contrôle input file sur la page aspx :
< INPUT id = " tboxMonFichier " type = " file " size = " 75 " name = " tboxMonFichier " runat = " server " >
|
Qui est déclkaré dans le code behind :
Protected WithEvents tboxMonFichier As System. Web . UI . HtmlControls . HtmlInputFile
|
Puis dans le code behind :
If Not tboxMonFichier. PostedFile . FileName . Length = 0 Then
Dim monchemin as string = " C:\repfilesupload "
tboxMonFichier. PostedFile . SaveAs (monchemin & _
tboxMonFichier. PostedFile . FileName . Substring ( _
tboxMonFichier. PostedFile . FileName . LastIndexOf (" \ " ) + 1))
End If
|
Attention : Veillez à mettre les droits nécéssaires sur le répertoire d'upload ;-)
|
lien : Pourquoi l'upload de fichiers de plus de 4Mo lève une exception ?
|
| auteur : David Pedehourcq |
Nous allons afficher tous les fichiers d'un répertoire dans une ListBox :
Dim dir As New DirectoryInfo (" C:\MonChemin " )
MalLsttBox. DataSource = dir. GetFiles (" *.* " )
MalLsttBox. DataBind ()
|
Note : attention à bien paramètrer vos droits de manière à ce que le user ASPNET puisse parcourir le répertoire ;)
|
| auteur : abelman |
Pour créer, copier, déplacer ou supprimer un fichier, on utilise la classe System.IO.File
Imports System
Imports System. IO
Public Shared Sub FileTests ()
Try
Dim fs As FileStream = File. Create (" myfile.txt " )
fs. Close
Console. WriteLine (" fichier myfile.txt créé " )
File. Copy (" myfile.txt " , " copyofmyfile.txt " )
Console. WriteLine (" fichier myfile.txt copié vers copyofmyfile.txt " )
File. Move (" copyofmyfile.txt " , " c:\copyofmyfile.txt " )
Console. WriteLine (" fichier copyofmyfile.txt déplacé vers c:\copyofmyfile.txt " )
File. Delete (" c:\copyofmyfile.txt " )
Console. WriteLine (" Fichier c:\copyofmyfile.txt supprimé " )
Catch e As Exception
Debug. WriteLine (ex. ToString )
Console. WriteLine (ex. Message )
End Try
End Sub
|
|
lien : System.IO.File
|
| auteur : abelman |
Nous allons ouvrir un fichier texte et le remplir s'il n'existe pas encore.
Nous afficherons ensuite son contenu à l'écran.
On utiliser pour cela les classes System.IO.StreamReader pour la lecture et System.IO.StreamWriter pour l'écriture
Imports System
Imports System. IO
Sub FichierTexte (ByVal nomFichier As String )
Dim sr As StreamReader = Nothing
Dim sw As StreamWriter = Nothing
Dim line As String
Try
If Not File. Exists (nomFichier) Then
sw = New StreamWriter (nomFichier)
sw. WriteLine (" Bonjour. Nous sommes le {0} et il est {1} " , DateTime. Now . ToLongDateString , DateTime. Now . ToLongTimeString )
sw. Close
sw = Nothing
End If
sr = New StreamReader (nomFichier)
Console. WriteLine (" Début du fichier " )
line = sr. ReadLine
While Not (line Is Nothing )
Console. WriteLine (line)
line = sr. ReadLine
End While
Console. WriteLine (" Fin du fichier " )
Finally
If Not (sr Is Nothing ) Then
sr. Close
End If
If Not (sw Is Nothing ) Then
sw. Close
End If
End Try
End Sub
|
|
lien : System.IO.StreamWriter
lien : System.IO.StreamReader
|
| auteur : abelman |
On utilise la fonction GetFileSystemEntries de la classe System.IO.Directory
Imports System. IO
Imports System
Shared Sub Dir (ByVal directory As String )
Dim files As String ()
files = Directory. GetFileSystemEntries (directory)
Dim filecount As Integer = files. GetUpperBound (0) + 1
Dim i As Integer = 0
While i < filecount
Response . Write (files[i])
System. Math . Min (System. Threading . Interlocked . Increment (i),i- 1)
End While
End Sub
|
Pour avoir juste les noms des fichiers et pas les sous-répertoires d'un répertoire, on utilise
System. IO . Directory . GetFiles ()
|
|
lien : System.IO.Directory
|
| auteur : Didier Danse |
Il nous est souvent nécessaire de lister les répertoires présents dans le répertoire d'une application
asp.NET. Pour cela, il suffit de boucler sur la liste des DirectoryInfo renvoyés par
l'intermédiaire de la méthode GetDirectories de cette même classe DirectoryInfo.
Attention que la base de l'application doit être récupérée par l'intermédiaire de
ce qui donne ...
Dim di As System. IO . DirectoryInfo = New System. IO . DirectoryInfo (Server . MapPath (" . " ))
For Each di2 As System. IO . DirectoryInfo In di. GetDirectories
Response . Write (di2. FullName )
Next
|
Bien entendu vous pouvez (voire devez) gérer les exceptions du type "Répertoire inexistant"
ou encore "Accès interdit".
|
lien : Comment lister les fichiers d'un répertoire?
|
| auteur : Didier Danse |
Comme pour le listage des répertoires, une simple boucle suffit. DirectoryInfo fournit une
méthode GetFiles qui se chargent de renvoyer la liste des fichiers du répertoires.
Il ne reste plus dès lors qu'à effectuer un traitement sur chacun des fichiers de cette liste.
Dim di As System. IO . DirectoryInfo = New System. IO . DirectoryInfo (Server . MapPath (" . " ))
For Each fi As System. IO . FileInfo In di. GetFiles
Response . Write (fi. FullName )
Next
|
Bien entendu vous pouvez (voire devez) gérer les exceptions du type "Répertoire inexistant"
ou encore "Accès interdit".
|
lien : Comment lister les répertoires d'une application?
|
| auteur : Didier Danse |
Pour connaître la taille du contenu, il suffit d'additionner la taille de chacun des
fichiers de ce répertoire.
Voici une petite fonction permet d'effectuer cette opération.
Public Function DirectoryLength (ByVal relativePath As String ) As Integer
Dim bytes As Integer = 0
Dim di As System. IO . DirectoryInfo = New System. IO . DirectoryInfo (Server . MapPath (relativePath))
For Each fi As System. IO . FileInfo In di. GetFiles
bytes + = fi. Length
Next
Return bytes
End Function
|
Bien entendu vous pouvez (voire devez) gérer les exceptions du type "Répertoire inexistant"
ou encore "Accès interdit".
|
| auteur : Xavier Talour |
Certes XML et les bases de données prennent de plus en plus de place dans le monde
de l'informatique mais les fichiers dits "classiques" sont toujours bel et bien présents.
Voici comme lire un fichier et, ce, ligne par ligne.
Tout d'abord il faut utiliser le namespace System.IO.
Pour lire tout le fichier, il suffit de boucler sur toutes les lignes du fichier.
Public Sub ReadByLine (ByVal path As String )
Dim sr As StreamReader
Try
sr = New StreamReader (path)
Dim contenu As String
While Not ((contenu = sr. ReadLine ) Is Nothing )
End While
Catch generatedExceptionVariable0 As Exception
Finally
sr. Close
End Try
End Sub
|
|
| auteur : Didier Danse |
Les content-types se trouvent dans la base de registres. Il "suffit" de parcourir les associations
extension / content-type pour retrouver celle qui correspond à l'extension de notre fichier.
Voici une fonction permettant d'effectuer cette recherche.
Public Shared Function GetMIMEType (ByVal filepath As String ) As String
Dim regPerm As RegistryPermission = New RegistryPermission (RegistryPermissionAccess. Read , " \HKEY_CLASSES_ROOT " )
Dim classesRoot As RegistryKey = Registry. ClassesRoot
Dim fi As FileInfo = New FileInfo (filepath)
Dim dotExt As String = fi. Extension . ToLower
Dim typeKey As RegistryKey = classesRoot. OpenSubKey (" MIME\Database\Content Type " )
Dim Keyname As String = " "
For Each keyname As String In typeKey. GetSubKeyNames
Dim curKey As RegistryKey = classesRoot. OpenSubKey (" MIME\Database\Content Type\ " + keyname)
If CType (curKey. GetValue (" Extension " ), String ) = dotExt Then
Keyname = keyname
End If
Next
Return Keyname
End Function
|
Sans oublier d'importer les namespaces suivants:
Imports System. IO
Imports System. Security . Permissions
Imports Microsoft. Win32
|
|
| auteur : Didier Danse | Lorsque vous ouvrez un fichier texte, par exemple, il vous faut savoir l'adresse physique de ce fichier. Malheureusement, nous ne connaissons que le chemin relatif bien souvent.
Server.MapPath est là pour nous aider. En lui passant le chemin relatif, Server.MapPath renverra le chemin physique complet.
Cela donne, dans l'exemple de l'ouverture d'un flux sur le fichier texte :
Fs. Open (Server . MapPath (" ./adresserelative/fichier.txt " ))
|
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2007
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|