Tengo un proyecto de C # (aplicación de consola de Windows). He creado una carpeta llamada Datos dentro del proyecto. Hay dos archivos de texto dentro de la carpeta Datos.
¿Cómo puedo leer los archivos de texto de la carpeta "Datos"? Intenté debajo de las cosas.
string[] files = File.ReadAllLines(@"Data\Names.txt")
Es un error de thowing que el archivo no se encuentra.
He revisado algunas respuestas de Stackoverflow publicadas antes y ninguna de ellas funciona para mí.
¿Cómo puedo proceder? ¡Gracias!
Respuestas:
el siguiente código debería funcionar:
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Data\Names.txt"); string[] files = File.ReadAllLines(path);
fuente
Build Action
enContent
yCopy to Output Directory
enCopy always
depende de dónde esté tu carpeta de datos
Para obtener el directorio donde está el archivo .exe:
Para obtener el directorio actual:
Luego puede concatenar la ruta de su directorio (
@"\Data\Names.txt"
)fuente
Si necesita obtener todos los archivos en la carpeta llamada 'Datos', codifíquelos como se muestra a continuación
string[] Documents = System.IO.Directory.GetFiles("../../Data/");
Ahora los 'Documentos' consisten en una matriz de nombre de objeto completo de dos archivos de texto en la carpeta 'Datos' 'Datos'.
fuente
Tengo un proyecto de C # (aplicación de consola de Windows). He creado una carpeta llamada Imágenes dentro del proyecto. Hay un archivo ico llamado MyIcon.ico. Accedí a MyIcon.ico dentro de la carpeta Imágenes como se muestra a continuación.
this.Icon = new Icon(@"../../Images/MyIcon.ico");
fuente
Copiar siempre al directorio de salida está configurado y luego intente lo siguiente:
fuente
Para Xamarin.iOS, puede usar el siguiente código para obtener el contenido del archivo si el archivo 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); }
fuente
Use este Código para leer todos los archivos en carpetas y subcarpetas también
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; } }
fuente
string myFile= File.ReadAllLines(Application.StartupPath.ToString() + @"..\..\..\Data\myTxtFile.txt")
fuente
Usa esto, está funcionando.
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestData\test.json"); var response = JsonConvert.DeserializeObject<Response>(File.ReadAllText(path));
Tenga en cuenta: debe asegurarse de establecer las propiedades del archivo
test.json
como"Build Action" = "Contenido"
"Copy to Output Directory" = "Copiar siempre"
fuente
Esto fue útil para mí, si usa el
var dir = Directory.GetCurrentDirectory()
el relleno de la ruta estará más allá de la carpeta actual, incluirá esta ruta \ bin \ debug Lo que te recomiendo es que puedas usar el
string dir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName
luego imprima el valor de dir y verifique que la ruta le está dando
fuente