2 Ağustos 2018 Perşembe

Environment Sınıfı

CurrentDirectory Alanı
Açıklaması şöyle.
By definition, if this process starts in the root directory of a local or network drive, the value of this property is the drive name followed by a trailing slash (for example, "C:\"). If this process starts in a subdirectory, the value of this property is the drive and subdirectory path, without a trailing slash (for example, "C:\mySubDirectory").
Şöyle yaparız.
var directory = Path.Combine(Environment.CurrentDirectory, $@"foo");
Bu alan uygulamanın nereden çalıştırıldığını gösterir. Uygulamanın nerede olduğunu göstermez!
Şöyle yaparsak cwd ve uygulama aynı dizindir.
> cd path/to/program
> mono program.exe
Şöyle yaparsak cwd ve uygulama farklı dizinlerdir.
> mono /home/user/program/program.exe
Uygulamanın yerini öğrenmek için Assembly.CodeBase kullanılabilir.

ExpandEnvironmentVariables metodu 
Değişken içeren dizinler açmak için kullanılır.
var path = @"%userprofile%\Music\Bookmarks";
var filePath = Environment.ExpandEnvironmentVariables(path);
Exit metodu 
Uygulamadan, servisten çıkmak için kullanılır. Genelde son çare olarak kullanılır.
System.Environment.Exit(0);
FailFast metodu 
Açıklaması şöyle
Immediately terminates a process after writing a message to the Windows Application event log, and then includes the message in error reporting to Microsoft.
ve
This method terminates a process without running any active try/finally blocks or finalizers.
Şöyle yaparız.
Environment.FailFast("FailFast", e.Exception);
GetFolderPath metodu 
Bu metod özel dizinlere erişmek için kullanılır.

ApplicationData
Örnek
string path=Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Çıktı olarak şunu alırız.
C:\Users\<UserName>\AppData\Roaming\SomeName
Desktop
Şöyle yaparız.
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
MyDocuments
Örnek
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Personal
MyDocuments ile aynı dizini verir. Şöyle yaparız.
string path = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
ProgramFiles
64 bit işletim sisteminde aşağıdaki çağrıları yaparsak
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
Çıktı olarak şunu görürüz.
C:\Program Files (x86)
C:\Program Files 
Startup
Şöyle yaparız.
string path = Environment.GetFolderPath (Environment.SpecialFolder.Startup);
Çıktı olarak şunu görürüz.
C:\Users\acelya\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
NewLine Alanı
Windows'ta "\r\n" ile aynıdır. Şöyle yaparız.
Environment.NewLine
ProcessorCount Alanı
Şöyle yaparız.
int numProcs = Environment.ProcessorCount;
TickCount Alanı
Sistemin açılışından beri geçen süreyi milisaniye olarak verir. int tpinden olduğu için belli bir süreden uzun açık kalan sistemlerde değer eksi olabilir. Aynı işi Python'da yapan Uptime kütüphanesi var.

Şöyle yaparız. Bu alanın hassasiyeti 10 - 16 milisaniye (genelde 15.6 milisaniye) olduğu için Stopwatch sınıfı varken kullanmanın bir anlamı yok.
int start = System.Environment.TickCount;
...

Console.WriteLine(System.Environment.TickCount-start);
UserInteractive Alanı
Servis olup olmadığımızı anlamamızı sağlar.
public static int Main(string[] args)
{
  if (!Environment.UserInteractive)
  {
    // Startup as service.
  }
  else
  {
    // Startup as application
  }
}
UserName Alanı
System.Environment.Username
ile login olmuş o anki kullanıcının ismini alırız. Eğer servis içinden veya IIS içinden çağırırsak bu servisi çalıştıran hesabın ismini alırız.



Hiç yorum yok:

Yorum Gönder