Jump to content

Archived

This topic is now archived and is closed to further replies.

Silent Assassin

[C#] n00bowski problem

Recommended Posts

Elo, jest tak, że dosłownie przepisuję program z książki i dzieją się dziwne rzeczy, mianowicie:

using System;
using System.IO;

public class Program
{
    public static void Main(string[] args)
    {
        // Console.ReadKey();

        if (args.Length < 1)
        {
            Console.WriteLine("zle dane!");
            return;
        }
        string katalog = args[0];
// reszta już jest właściwie nieważna...;)

        DirectoryInfo di = new DirectoryInfo(katalog);

        if (!di.Exists)
        {
            Console.WriteLine("Plik nie istnieje");
            return;
        }
        Console.WriteLine("Dane katalogu {0} to: ", katalog);
        Console.WriteLine("Czas utworzenia: {0}", di.CreationTime);
        Console.WriteLine("Atrybuty: {0}", di.Attributes);
        Console.WriteLine("Katalog nadzrzędny: {0}", di.Parent);
        Console.WriteLine("Ostatnia wizyta: {0}", di.LastAccessTime);
    }
}

Kiedy debuguję albo odpalam solucję, to aplikacja włącza się na pół sekundy i znika. W takiej sytuacji dopisuję zwykle "Console.ReadKey();" (tak jak powyżej jest w komentarzu), ale w tym wypadku zdaje mi się, że kłóci się to z argumentem metody Main. W każdym razie nie chce działać. Why!

Link to comment
Share on other sites

program Ci znika, ponieważ po spełnieniu warunku zwraca wartość funkcji, co kończy program.

using System;
using System.IO;

public class Program
{
    public static void Main(string[] args)
    {
        // Console.ReadKey();

        if (args.Length < 1)
        {
            Console.WriteLine("zle dane!");
            [b]Console.ReadKey();[/b]
            return;
        }
        string katalog = args[0];
// reszta już jest właściwie nieważna...;)

        DirectoryInfo di = new DirectoryInfo(katalog);

        if (!di.Exists)
        {
            Console.WriteLine("Plik nie istnieje");
            [b]Console.ReadKey();[/b]
            return;
        }
        Console.WriteLine("Dane katalogu {0} to: ", katalog);
        Console.WriteLine("Czas utworzenia: {0}", di.CreationTime);
        Console.WriteLine("Atrybuty: {0}", di.Attributes);
        Console.WriteLine("Katalog nadzrzędny: {0}", di.Parent);
        Console.WriteLine("Ostatnia wizyta: {0}", di.LastAccessTime);
        [b]Console.ReadKey();[/b]
    }
}

teraz w każdym wypadku będzie czekał na naciśnięcie klawisza.

jeżeli chcesz żeby program prosił o podanie ścieżki katalogu, a potem o wyświetlenie informacji zrób tak:

using System;
using System.IO;

public class Program
{
    public static void Main(string[] args)
    {
        string kat = Console.ReadLine();
        if (kat.Length < 1)
        {
            Console.WriteLine("zle dane!");
            Console.ReadKey();
            return;
        }
        DirectoryInfo di = new DirectoryInfo(kat);

        if (!di.Exists)
        {
            Console.WriteLine("Plik nie istnieje");
            Console.ReadKey();
            return;
        }
        Console.WriteLine("Dane katalogu {0} to: ", kat);
        Console.WriteLine("Czas utworzenia: {0}", di.CreationTime);
        Console.WriteLine("Atrybuty: {0}", di.Attributes);
        Console.WriteLine("Katalog nadzrzędny: {0}", di.Parent);
        Console.WriteLine("Ostatnia wizyta: {0}", di.LastAccessTime);
        Console.ReadKey();
        return;
    }
}

Link to comment
Share on other sites

musisz uruchomić program (to co podałem jako pierwsze) z parametrem, np:

"c:\program.exe" "c:\Windows"

wtedy poda właściwości katalogu "c:\Windows".

możesz zrobić skrót i tam dopisać parametr albo uruchomić przez konsolę z parametrem.

Link to comment
Share on other sites



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...