C# - Compact Framework lister fichiers

neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 - 23 oct. 2008 à 12:14
neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 - 25 oct. 2008 à 12:59
Bonjour à tous!

Encore une question concernant Windows Mobile...

J'ai fait une petite application contenant une listbox dans laquelle j'affiche les fichiers (et dossiers) que contient le sous-dossier "test" où est installée mon application.

Le programme marche très bien sous l'émulateur Win Mobile 6.1 Pro - CF3.5 et me liste mes fichiers mais pas sur mon PPC (HTC TyTN2 WinMobile 6.1 Pro - CF 3.5).

Y a-t-il une erreur dans mon code?

using

System;

using

System.Diagnostics;
using

System.IO.Compression;
using

System.Runtime.InteropServices;
using

System.Linq;
using

System.Collections.Generic;
using

System.ComponentModel;
using

System.Data;
using

System.Drawing;
using

System.Text;
using

System.Windows.Forms;
namespace

testlistfolder{

public
partial
class
FrmMain :
Form{

public
string strCurrentDir = System.IO.
Path.GetDirectoryName(System.Reflection.
Assembly.GetExecutingAssembly().GetName().CodeBase);

public FrmMain(){

InitializeComponent();

lsSkinList.Items.Clear();

strCurrentDir = strCurrentDir +

"\\test\";AllFilesInDirectory(strCurrentDir);

}

private
void btnLoadSkins_Click(
object sender,
EventArgs e){

try{

// Since the FindString loops infinitely, determine if we found first item again and exit.

if (lsSkinList.SelectedItem.ToString() ==
"\\.."){
strCurrentDir "";strCurrentDir System.IO.

Path.GetDirectoryName(System.Reflection.
Assembly.GetExecutingAssembly().GetName().CodeBase);AllFilesInDirectory(strCurrentDir);

}

else{

try{

MessageBox.Show(lsSkinList.GetItemText(lsSkinList.SelectedItem));

}catch(
Exception ex)

{

//handle any errors that occurred

MessageBox.Show("ERROR: no file selected. " + ex.Message);strCurrentDir "";strCurrentDir System.IO.

Path.GetDirectoryName(System.Reflection.
Assembly.GetExecutingAssembly().GetName().CodeBase);AllFilesInDirectory(strCurrentDir);

}

}

}

catch (
Exception ex){

//handle any errors that occurred

MessageBox.Show(ex.Message);}

}

private
void lsSkinList_SelectedIndexChanged(
object sender,
EventArgs e){

}

public
void AllFilesInDirectory(
string dir){

//always use a try...catch to deal

//with any exceptions that may occur

try{

//first make sure the directory exists

//if it doesnt and we try to delete the

//files an exception is thrown

if (!System.IO.
Directory.Exists(dir)){

//error

MessageBox.Show(
"Folder " + dir +
" cannot be found! Please retry your request");}

else{

// add root folder

// lsSkinList.Items.Add("\\..");lsSkinList.Items.Clear();

//retrieve all the files and put them into a string array

string[] files = System.IO.
Directory.GetFiles(dir);

string[] folders = System.IO.
Directory.GetDirectories(dir);

string str;lsSkinList.BeginUpdate();

//now loop through all the folders

foreach (
string folder
in folders){

foreach (
string file
in files){

// Replace string str = file;

str = str.Replace(strCurrentDir,

"");

// lsSkinList.Items.Add(folder);lsSkinList.Items.Add(str);

}

}

lsSkinList.EndUpdate();

//let the user know it was successful

// MessageBox.Show("All files added successfully!");}

}

catch (
Exception ex){

//handle any errors that occurred

MessageBox.Show(ex.Message);}

}

private
void btnRefresh_Click(
object sender,
EventArgs e){

try{
strCurrentDir "";strCurrentDir strCurrentDir +

"\\cab";AllFilesInDirectory(strCurrentDir);

}

catch (
Exception ex){

//handle any errors that occurred

MessageBox.Show(ex.Message);}

}

}

}

4 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
24 oct. 2008 à 20:15
Bonjour,
Où se trouve ton appli sur un support amovible ? Est-tu sur du chemin du répertoire à rechercher ? Existe-t-il sur ton mobile ?
Une erreur est-elle levée ?

++
0
neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 3
24 oct. 2008 à 23:31
Bonjour Wili.

Mon appli se trouve dans Program Files\nom_appli du mobile.

Ce qui m'étonne c'est que théoriquement le programme ne doit pas en tenir compte puisque j'utilise:
strCurrentDir = System.IO.Path.GetDirectoryName(System.Reflection.
Assembly.GetExecutingAssembly().GetName().CodeBase);

J'ai testé sur l'émulateur avec succès et j'ai vérifié sur mon mobile que la config soit identique (ce qui est le cas). Mon but est justement de pouvoir faire tourner l'appli dans n'importe quel dossier et de lister le dossier lui-méme et ses sous-dossiers...

Une idée?

Non, il n'y a pas d'erreur malgré le try-catch...
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
25 oct. 2008 à 12:21
Oui mais dans Main ya ça
strCurrentDir = strCurrentDir +"\\test\"
;

Si ce répertoire n'existe pas il y a une erreur
Le savoir n'est que le filtre de l'experience
0
neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 3
25 oct. 2008 à 12:59
Oui mais dans Main ya ça
strCurrentDir = strCurrentDir +"\\test\"
;

Si ce répertoire n'existe pas il y a une erreur

Ben oui, si je ne m'abuse strCurrentDir me retourne le chemin de l'application et tout ce que je fais c'est de lui dire de chercher dans le dossier "test" qui est contenu dans le même dossier.

Et comme je l'ai dit, je pars du principe que j'ai créé le dossier, c'est à dire qu'effectivement je le crée manuellement AVANT s'il n'existe pas..
0
Rejoignez-nous