IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ sur la programmation en langage RustConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 95, dernière mise à jour : 21 juillet 2018  Ajouter une question

 

Cette FAQ a été réalisée pour répondre aux questions les plus fréquemment posées sur la programmation en langage Rust. Nous vous recommandons de la consulter avant de poser vos questions sur le forum Rust.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle contient sont correctes ; les auteurs font le maximum, mais l'erreur est humaine. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci.

Toute nouvelle question/réponse est la bienvenue, vous pouvez proposer vos questions réponses par e-mail (voir le lien en bas de page) au(x) responsable(s) de la rubrique Rust ou mieux en postant votre proposition à la publication.
Vous pouvez participer à l'amélioration des questions réponses en postant directement dans cette FAQ. Une validation par le(s) responsable(s) de la rubrique Rust sera requise avant que vos contributions ne soient visibles.

Sur ce, nous vous souhaitons une bonne lecture.

SommaireI/O (5)
précédent sommaire suivant
 

Dans cette section, vous retrouverez toutes les questions couramment posées concernant l'utilisation des outils dédiés à la gestion des flux.

Mis à jour le 22 octobre 2017 Songbird

Pour créer un fichier, rien de plus simple, il vous faudra utiliser la structure File.

Code Rust : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
use std::io; 
use std::fs::File; 
  
/* Vous pouvez placer la ressource de votre choix dans le diamant pour que cela compile.  
En l'occurrence, nous avons placé un tuple vide `()` pour l'exemple. */ 
fn foo() -> io::Result<()> 
{ 
    // On récupère la ressource ou on effectue un renvoi prématuré 
    // si une erreur est survenue. 
    let mut file = File::create("thecakeisalie.txt")?; 
    Ok(()) 
}

Mis à jour le 22 octobre 2017 Songbird

Voir aussi:
La documentation de la structure File.

Pour lire un fichier, il vous faudra utiliser la structure File et le trait Read.
La procédure est presque identique à celle qui vous permet de créer votre fichier.

Code Rust : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use std::io; 
use std::fs::File; 
  
/* Vous pouvez placer la ressource de votre choix dans le diamant pour que cela compile.  
En l'occurrence, nous avons placé un tuple vide `()` pour l'exemple. */ 
fn foo() -> io::Result<()> 
{ 
    // On récupère la ressource ou on effectue un renvoi prématuré 
    // si une erreur est survenue. 
    let mut file = File::open("thecakeisalie.txt")?; 
    let mut string = String::new(); 
    file.read_to_string(&mut string)?; 
    Ok(()) 
}

Mis à jour le 22 octobre 2017 Songbird

Voir aussi:
La documentation de la structure File.
La documentation de la structure Read.

Pour écrire dans un fichier, vous devrez importer trois ressources:

  1. std::io::Result (un alias de l'enum std::result::Result);
  2. std::io::Write (Le trait qui permet d'implémenter la méthode write_all());
  3. std::fs::File (La structure censée représenter votre fichier).


Code Rust : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use std::io::Result; 
use std::io::Write; 
use std::fs::File; 
  
fn foo() -> Result<()> 
{ 
    let mut f = File::create("foo.txt")?; 
    f.write_all(b"Hello, world!")?; 
    Ok(()) 
} 
  
fn main() -> () 
{ 
    /*...*/ 
}

Mis à jour le 23 octobre 2017 Songbird

Voir aussi:
La documentation de la structure Result.
La documentation de la structure Write.
La documentation de la structure File.
La documentation de la méthode write_all().

Il suffit d'utiliser la méthode Path.read_dir() qui renverra un ensemble d'objets DirEntry.

Code Rust : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
use std::path::Path; 
use std::fs::ReadDir; 
  
let path = Path::new("/path/to/dir"); 
let dir_entries: ReadDir = path.read_dir().expect("read_dir call failed."); 
for entry in dir_entries { 
	if let Ok(entry) = entry { 
		println!("File name: {:?}", entry.file_name()); 
		println!("File path: {:?}", entry.path()); 
	} 
}

Mis à jour le 24 octobre 2017 Songbird

Voir aussi:
La documentation de la méthode Path.read_dir().
La documentation de la structure DirEntry.
La documentation de la structure ReadDir.

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2022 Developpez Developpez LLC. Tous 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.