J'ai un projet C # (Windows Console Application). J'ai créé un dossier nommé Data inside project. Il y a deux fichiers texte dans le dossier Data.
Comment puis-je lire les fichiers texte du dossier "Données". J'ai essayé les choses ci-dessous.
string[] files = File.ReadAllLines(@"Data\Names.txt")
C'est une erreur que le fichier n'a pas trouvé.
J'ai vérifié certaines réponses de Stackoverflow publiées auparavant et aucune de ces réponses ne fonctionne pour moi.
Comment puis-je procéder? Merci!
Réponses:
le code ci-dessous devrait fonctionner:
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Data\Names.txt"); string[] files = File.ReadAllLines(path);
la source
Build Action
surContent
etCopy to Output Directory
surCopy always
cela dépend où se trouve votre dossier Data
Pour obtenir le répertoire où se trouve le fichier .exe:
Pour obtenir le répertoire courant:
Ensuite, vous pouvez concaténer votre chemin de répertoire (
@"\Data\Names.txt"
)la source
Si vous avez besoin d'obtenir tous les fichiers dans le dossier nommé 'Data', codez-le simplement comme ci-dessous
string[] Documents = System.IO.Directory.GetFiles("../../Data/");
Maintenant, le «Documents» se compose d'un tableau de nom d'objet complet de deux fichiers texte dans le dossier «Données» «Données».
la source
J'ai un projet C # (Windows Console Application). J'ai créé un dossier nommé Images à l'intérieur du projet. Il existe un fichier ico appelé MyIcon.ico. J'ai accédé à MyIcon.ico dans le dossier Images comme ci-dessous.
this.Icon = new Icon(@"../../Images/MyIcon.ico");
la source
Copy Always to output directory est défini, puis essayez ce qui suit:
la source
Pour Xamarin.iOS, vous pouvez utiliser le code suivant pour obtenir le contenu du fichier s'il existe.
var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var filename = Path.Combine(documents, "xyz.json"); if (File.Exists(filename)) { var text =System.IO.File.ReadAllText(filename); }
la source
Utilisez ce code pour lire tous les fichiers dans le dossier et les sous-dossiers également
class Program { static void Main(string[] args) { getfiles get = new getfiles(); List<string> files = get.GetAllFiles(@"D:\Document"); foreach(string f in files) { Console.WriteLine(f); } Console.Read(); } } class getfiles { public List<string> GetAllFiles(string sDirt) { List<string> files = new List<string>(); try { foreach (string file in Directory.GetFiles(sDirt)) { files.Add(file); } foreach (string fl in Directory.GetDirectories(sDirt)) { files.AddRange(GetAllFiles(fl)); } } catch (Exception ex) { Console.WriteLine(ex.Message); } return files; } }
la source
string myFile= File.ReadAllLines(Application.StartupPath.ToString() + @"..\..\..\Data\myTxtFile.txt")
la source
Utilisez ceci, ça marche.
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestData\test.json"); var response = JsonConvert.DeserializeObject<Response>(File.ReadAllText(path));
Remarque: vous devez vous assurer que définir les propriétés du fichier
test.json
comme"Build Action" = "Contenu"
"Copy to Output Directory" = "Copier toujours"
la source
Cela m'a été utile, si vous utilisez le
var dir = Directory.GetCurrentDirectory()
le chemin de remplissage se trouve au-delà du dossier actuel, il inclura ce chemin \ bin \ debug Ce que je vous recommande, c'est que vous pouvez utiliser le
string dir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName
puis imprimez la valeur dir et vérifiez que le chemin vous donne
la source