Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


J'ai besoin de connaître le répertoire physique de mon application asp.NET. Comment faire?
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.


Comment uploader un fichier sur le serveur via une page asp.net ?
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 : fr Pourquoi l'upload de fichiers de plus de 4Mo lève une exception ?

Comment afficher tous les fichier d'un répertoire du serveur ?
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 ;)


Comment créer, copier, déplacer, supprimer un fichier ?
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
'Création d un fichier vide
Dim fs As FileStream = File.Create("myfile.txt")
fs.Close
Console.WriteLine("fichier myfile.txt créé")

'Copie de fichier
File.Copy("myfile.txt", "copyofmyfile.txt")
Console.WriteLine("fichier myfile.txt copié vers copyofmyfile.txt")

'Déplacement de fichier
File.Move("copyofmyfile.txt", "c:\copyofmyfile.txt")
Console.WriteLine("fichier copyofmyfile.txt déplacé vers c:\copyofmyfile.txt")

'Suppression de fichier
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 : fr System.IO.File

Comment lire et écrire dans un fichier texte ?
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
' Le fichier n'existe pas. On le crée. 
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
' Remarque : On peut utiliser sw = File.AppendText(NomFichier) pour ajouter 
' du texte à un fichier existant 
End If
' Ouverture du fichier et écriture du contenu du fichier sur la console 
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
' Fermeture streamreader 
If Not (sr Is Nothing) Then
sr.Close
End If
' Fermeture streamwriter 
If Not (sw Is Nothing) Then
sw.Close
End If
End Try
End Sub
lien : fr System.IO.StreamWriter
lien : fr System.IO.StreamReader

Comment obtenir la liste des fichiers et des sous-répertoires d'un répertoire ?
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 : fr System.IO.Directory

Comment lister les répertoires d'une application?
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

Server.MapPath(".")
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)
' Traitement quelconque
Next
Bien entendu vous pouvez (voire devez) gérer les exceptions du type "Répertoire inexistant" ou encore "Accès interdit".

lien : faq Comment lister les fichiers d'un répertoire?

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 : faq Comment lister les répertoires d'une application?

Comment connaître la taille totale du contenu d'un répertoire?
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".


Comment lire un fichier ligne par ligne?
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.

Imports 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)
' Utiliser ce contenu
' Par exemple ajout d'une ListBox, ...
End While
Catch generatedExceptionVariable0 As Exception
' Gestion de l'exception (FileNotFound, ...
' (redirection, ...)
Finally
sr.Close
End Try
End Sub

Comment récupérer le content-type d'un fichier?
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

Comment permettre d'utiliser des fichiers de manière relative ?
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"))
		
		

precedent    sommaire    suivant   

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com