Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Silent Assassin

[C#] n00bowski problem

Polecane posty

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...