Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 1 da Aula 8 - System.IO

O código lança a exceção. Ps.: o arquivo existe. Além disso, gostaria de saber, como faço para criar o arquivo dinamicamente dentro da Solution e depois excluí-lo. Como referencio o path? Por exemplo, se eu criar uma pasta chamada Folder dentro do projeto, o path seria \Folder\file.txt ?

Obrigado.

Segue o código...


using System.Windows.Forms;
using System.IO;

namespace TrainingSystemIO
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            try
            {
                if (!File.Exists("\\Files\\file.txt"))
                    throw new FileNotFoundException("File not found!");
                else
                {
                    string full_file_path = "D:\\file.txt";
                    Stream file = File.Open(full_file_path, FileMode.Open);
                    StreamReader reader = new StreamReader(file);
                    StreamWriter writer = new StreamWriter(file);
                    writer.WriteLine("Escrevi algo aqui\n.");
                    string line = reader.ReadLine();

                    while (line != null)
                    {
                        textBoxContent.AppendText(line);
                        line = reader.ReadLine();
                    }
                    reader.Close();
                    file.Close();
                }
            }
            catch (FileNotFoundException fe)
            {
                MessageBox.Show("Error:\n\n " + fe + ".\n File could not be oppened.");
            }

        }

    }
}
2 respostas

Oi Douglas,

Quando você busca caminhos de pastas dentro de sua aplicação, por padrão ele parte do ponto em que sua aplicação está sendo executada. Ou seja, dentro da pasta Debug\bin do seu projeto.

Nessa linha:

if (!File.Exists("\\Files\\file.txt"))

Você estaria procurando uma pasta Files dentro de bin\debug. E no caso ainda está errado, porque você teria que fazer assim:

if (!File.Exists("Files\\file.txt"))

Certo?

Nessa página aqui tem alguns métodos que podem ter ajudar:

https://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx?f=255&MSPPError=-2147217396

solução!

Obrigado.