Soran
.NET Temel Sınıf Kütüphanesi - Sıkça Sorulan Sorular

Genel Tartışma
-
Bu konuda Temel Sınıf Kütüphanesi (.NET Base Class Library) hakkında en sık sorulan soruların cevaplarını vermeye çalışacağım. Konu içerisinde belki aklınızdaki her sorunun cevabını bulamayabilirsiniz ancak genel olarak faydalı olacağı düşüncesindeyim. Konu yazılım geliştirici arkadaşların aradıkları cevabı hızlı ve kolaylıkla bulabilmesi için hazırlanmıştır, bizim her zaman en önemli önceliğimiz MSDN forumlarının geliştiricilerin sorularını sorup cevap aldığı,yeni teknolojiler hakkında düşüncelerini paylaştıları bir forum ortamı yaratmaktır. Bu platformu geliştirmek için önerilerinizi beklemekteyiz.
Son olarak Forumlarda soru sorup başkalarına yardım eden tüm kullanıcılarımıza teşekkür ederiz.
- İki DateTime nesnesi arasında karşılaştırma nasıl yapılır?
- Convert.ToInt32,Int32.Parse ve (int) arasındaki farklar nelerdir?
- Onaltılık tabandaki bir string nasıl decimal/long veri tipine dönüştürülür?
- VB'deki IsDate fonksiyonunun C#'taki karşılığı nedir?
- Maksimum yol/dizin uzunluğu nasıl alınır?
- String bir veri nasıl int,double vb. Veri tiplerine dönüştürülür?
- Seri iletişim için SerialPort sınıfı nasıl kullanılır?
- Bir dosyanın kullanımda olup olmadığı nasıl anlaşılır?
- .NET kullanarak bir başka program nasıl açılır?
- Aynı anda uygulamanın 1 kopyasının çalıştığından nasıl emin olunur?
- .NET herhangi bir sıkıştırma özelliği sunuyor mu?
- Çalışma zamanında derleme (assembly) özelliklerine nasıl ulaşılır?
- Reflection kullanarak bir temsilci bir olaya nasıl bağlanır?
- Windows dosya sistemi içerisindeki dosya/klasör değişiklikleri nasıl tespit edilir?
- Uzun bir dosya yolunu kısa bir dosya yoluna dönüştürmek mümkün mü?
- Bir Numaralandırma (Enumeration) üyesi string tipinden veriye nasıl dönüştürülür?
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:01Moderatör
Tüm Yanıtlar
-
İki DateTime nesnesi arasında karşılaştırma nasıl yapılır?
İki DateTime nesnesini karşılaştırmak için karşılaştırma operatörlerini (<,>,=,!) ya da DateTime.Compare() metodunu kullanabilirsiniz.
Aynı şekilde bu nesneler arasındaki zaman farkını almak istiyorsanız Substract() metodunu kullanıp aradaki zaman farkını temsil eden TimeSpan nesnesi elde edersiniz.
Belirli bir tarihin bugünden önce olup olmadığınu bulma :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/448269c1-76e2-40c5-8022-e0d746322198/
Kalan zamanı hesaplama :
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/b40d4672-a0fc-4825-aff5-b01c90100b64
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:02Moderatör -
Convert.ToInt32,Int32.Parse ve (int) arasındaki farklar nelerdir?
(int) açık bir dönüştürme anlamındadır bu yapı veri tipleri arasındaki dönüşümlerde kullanılır ve çoğunlukla "cast" işlemi olarak bilinir. Dönüşüm işleminin yapılabilmesi için heden ve kaynak değişkenlerin dönüşüme uygun olması gerekir ve eğer hedef veri tipi kaynak veri tipinden daha küçük boyutluysa bir veri kaybı riski de mevcuttur.
İzin verilen açık dönüşüm işlemlerinin hangileri olduğunu takip eden bağlantıdan öğrenebilirsiniz :
http://msdn.microsoft.com/en-us/library/yht2cx7b.aspx
Int32.Parse metodu ise sadece karakter katarlarını tamsayılara dönüştürmek amacıyla kullanılabilir.
Convert sınıfı tüm veri tipleri arasındaki dönüşümleri yapmak için büyük kolaylıklar sağlar.
Convert.ToInt32(String,IFormatProvider) fonksiyonu ise aslında Int32.Parse() fonksiyonunu çağırır ancak Convert fonksiyonuna "null" parametre geçildiğinde 0 değeri döndürürken Int32.Parse fonksiyonuna "null" parametresi geçildğinde ArgumentNullException özel durum bildirimi oluşturulur.
Convert.ToInt32 fonksiyonu kaynak değer Int32.MaxValue değerinden büyük ya da Int32.MinValue değerinden küçük olursa OverflowException fırlatır ancak açık dönüştürme (int) işleminde bu özel durum oluşmaz.
Convert.ToInt32 fonksiyonu ile değer en yakın 32 işaretli tamsayı değerine yuvarlanır. Eğer değer iki sayının tam ortasında bir değerse değer çift sayıya yuvarlanır. Örneğin değer 4.5 ise 4'e - 5.5 ise 6'ya yuvarlama yapılır ancak (int) işleminde sadece tamsayı kısmı alınır ondalık kısım göz önünde bulundurulmaz.
Aşağıdaki bağlantılarda dönüşüm işlemleriyle ilgili detaylı bilgiye ulaşabilirsiniz :
http://msdn.microsoft.com/en-us/library/ms173105.aspx
http://msdn.microsoft.com/en-us/library/hcb26cc8(VS.80).aspx
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:06Moderatör -
Onaltılık tabandaki(hexadecimal) bir string nasıl decimal/long veri tipine dönüştürülür?
16lık tabanda bir string veriyi decimal/long veri tipine çevirme işlemini long.Parse() metoduna NumberStyle.HexNumber parametresini geçerek çağırmakla ya da Convert.ToInt64() metodunu 16 lık taban bilgisini parametre geçerek yapabiliriz.
string hex = "FF"; long L1 = long.Parse(hex, System.Globalization.NumberStyles.HexNumber); MessageBox.Show(L1.ToString()); long L2 = Convert.ToInt64(hex,16); MessageBox.Show(L2.ToString());
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:11Moderatör -
VB'deki IsDate fonksiyonunun C#'taki karşılığı nedir?
C#'ta böyle bir fonksiyon olmamasına rağmen yine de DateTime.TryParse metodunu kullanarak giriş olarak verilen nesnenin DateTime nesnesi olup olmadığını kontrol edebiliriz.
public static bool IsDate(object Expression) { if (Expression != null) { if (Expression is DateTime) { return true; } if (Expression is string) { DateTime time1; return DateTime.TryParse((string)Expression, out time1); } } return false; }
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:13Moderatör -
Maksimum yol/dizin uzunluğu nasıl alınır?
Şu anda hali hazırda gelen böyle bir sabit ya da fonksiyon mevcut değildir. Yol/dizin uzunluğunu alabilmek için uzun yoldan kodlamanız gerekmektedir. Aşağıdaki bağlantıda dosya ya da klasör adlandırmasıyla ilgili geniş bilgi yer almaktadır :
http://msdn.microsoft.com/en-us/library/aa365247.aspx
İlişkili forum konusu :
http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/35c6a451-3507-40c8-9d1c-8d4edde7c0cc
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:15Moderatör -
String bir veri nasıl int,double vb. Veri tiplerine dönüştürülür?
Convert sınıfını kullanarak bir string veriyi başka veri tiplerine dönüştürmeniz mümkündür. Convert sınıfının hali hazırda bu iş için birçok static metodu vardır.
Ayrıca dönüştürmek istediğiniz veri tipinin bir Parse() metodu olup olmadığını da kontrol edebilirsiniz,örneğin bir karakter katarını DateTime nesnesine dönüştürmek için DateTime.ParseExact metodunu kullanabilirsiniz.
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:16Moderatör -
Seri iletişim için SerialPort sınıfı nasıl kullanılır?
SerialPort sınıfı senkronize ve olay güdümlü giriş çıkış işlemlerini,pinlere,durum değişikliklerine ve seri sürücülerin özelliklerine ulaşmayı mümkün kılar. Aşağıdaki bağlantıda SerialPort sınıfını kullanarak 2 bilgisayarın aralarında haberleşmesinin sağlandığı bir örnek mevcuttur :
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:20Moderatör -
Bir dosyanın kullanımda olup olmadığı nasıl anlaşılır?
Bir dosyanın kullanımda olup olmadığını anlamak için kullanılacak en iyi yol dosyanın try-catch blockları arasında açılmaya çalışılmasıdır. Dosya kullanımdaysa IOException özel durum bildirimini fırlatacaktır.
public bool IsFileLocked(string filename) { bool Locked = false; try { FileStream fs = File.Open(filename, FileMode. OpenOrCreate, FileAccess.ReadWrite, FileShare.None); fs.Close(); } catch (IOException ex) { Locked = true; } return Locked; }
CreateFile API'si de bir dosyanın kullanılıp kullanılmadığı hakkında bilgi verebilir :
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern SafeFileHandle CreateFile(string lpFileName, FileSystemRights dwDesiredAccess, FileShare dwShareMode, IntPtr securityAttrs, FileMode dwCreationDisposition, FileOptions dwFlagsAndAttributes, IntPtr hTemplateFile); const int ERROR_SHARING_VIOLATION = 32; private bool IsFileInUse(string fileName) { bool inUse = false; SafeFileHandle fileHandle = CreateFile(fileName, FileSystemRights.Modify, FileShare.Write, IntPtr.Zero, FileMode.OpenOrCreate, FileOptions.None, IntPtr.Zero); if (fileHandle.IsInvalid) { if (Marshal.GetLastWin32Error() == ERROR_SHARING_VIOLATION) { inUse = true; } } fileHandle.Close(); return inUse; }
İlişkili forum konuları :
- Dosyaya erişilemiyor çünkü dosyayı başka bir işlem kullanıyor hatası :
http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/e99a7cea-43d3-49b1-82bc-5669e0b9d052
- Bir .txt dosyasının açık olup olmadığını kontrol etmek :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/76d63016-3864-4020-849a-01a82276493d/
- Dosyanın açık olup olmadığını kontrol etmek :
http://social.msdn.microsoft.com/forums/fr-FR/netfxbcl/thread/a539cbdc-5f42-4f09-9e04-860845aa049d/
- Dosyanın bir işlem tarafından bloke edildiğini nasıl anlarım?
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/4e3a6014-4cd7-4d38-ba87-ccf9ce28b3c5/
- Dosya kilitli ya da kullanımda durumu :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/f225e48c-0321-49a3-9134-53f409dee5d9/
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:24Moderatör - Dosyaya erişilemiyor çünkü dosyayı başka bir işlem kullanıyor hatası :
-
.NET kullanarak bir başka program nasıl açılır?
Process.Start() metodunu kullanarak başka programları çalıştırabilirsiniz. Ayrıca daha kompleks işlemler için başlangıç parametreleri belirleyecekseniz, komut satırı parametrelerini belirlemeye,çıkışı yönlendirmeye imkan veren ProcessStartInfo sınıfını da kullanabilirsiniz. ProcessStartInfo ve Process sınıfları System.Diagnostics isim alanında yer almaktadırlar.
P/Invoke ile CreateProcess API'sini de kullanarak .NET üzerinden başka bir programı çalıştırabilirsiniz.
İlişkili forum konuları :
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/61be184c-f382-41ac-9844-74aad0b02681
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/dccbb4f4-b4c8-4d4e-8b43-8213636bb187/
http://social.msdn.microsoft.com/forums/en/netfxbcl/thread/50df756e-3a57-4554-ada7-734eccb14b33/
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1586ced7-8f9e-434c-a861-1ab0309719e6/
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:30Moderatör -
Aynı anda uygulamanın 1 kopyasının çalıştığından nasıl emin olunur?
İsimlendirilmiş bir mutex kullanarak bu işlem gerçekleştirilebilir. Mutex ile ilgili daha fazla bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz :
http://msdn.microsoft.com/tr-tr/library/system.threading.mutex.aspx
Mutex kullanımına bir örnek vermek gerekirse :
bool firstInstance; Mutex mutex = new Mutex(false, "Local\\" + someUniqueName, out firstInstance);
Yukarıda kullanılan mutex yerel bir mutex'tir yani şu anki kullanıcının oturumunda bulunduğu anlamına gelir."Local" anahtar kelimesiyle bu mutex'in başka kullanıcılar tarafından kullanılması engellenmiştir. Yani mantık olarak yukarıda yazılan kod ile aynı anda 2 kullanıcı programı çalıştıramaz.
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:33Moderatör -
.NET herhangi bir sıkıştırma özelliği sunuyor mu?
.NET 1.1 versiyonunda Framework ile birlikte genel amaçlı bir sıkıştırma kütüphanesi bulunmamaktadır.
Versiyon 2.0 ve sonrasında System.IO.Compression isim alanı duyurulmuştur. Bu isim alanına ait GZipStream ve DeflateStream sınıflarıyla birlikte sıkıştırma ve tekrar açma işlemleri yapılabilir.
Sıkıştırma işlemiyle ilgili daha fazla bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz :
http://msdn.microsoft.com/en-us/library/system.io.compression.aspx
İlişkili forum konuları :
- Bir klasör içerisindeki dosyları sıkıştırmak :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/4250c086-f1f7-4ff9-a87a-1ac7b83ff2aa/
- Windows Explorer ile aynı şekilde dosya sıkıştırmak :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/391eb765-f56f-452e-a2e3-3dc704698de3/
- C# ve Shell32.dll dosyasını kullanarak Zip dosyaları oluşturmak :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/30fc0cfd-7277-479f-ba2f-c0bc763de143/
- Klasör şifrelemeyle ilgili C# kodu :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/6236d7e9-685b-4c13-89b2-7fe0334c8184/
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:35Moderatör - Bir klasör içerisindeki dosyları sıkıştırmak :
-
Çalışma zamanında derleme (assembly) özelliklerine nasıl ulaşılır?
Derleme çapındaki neredeyse tüm özelliklere Assembly.GetCustomAttributes() metodunu kullanarak ulaşabilirsiniz. Mesela derleme ismini öğrenmek istediğimizde aşağıdaki kod yazılabilir :
Assembly asm = this.GetType().Assembly; object[] attrs = asm.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)); if (attrs.Length == 1) { Console.WriteLine(((AssemblyTitleAttribute)attrs[0]).Title); }
Not :
AssemblyVersionAttribute (DerlemeVersiyonu) derleme isminden öğrenilebilir.
Örneğin :
Assembly asm = this.GetType().Assembly; Console.WriteLine(asm.GetName().Version);
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:38Moderatör -
Reflection kullanarak bir temsilci (delegate) bir olaya nasıl bağlanır?
Derlemeleri yüklemek ve çalıştırmak için yansıma kullandığınızda C#'taki += operatörünü ya da Visual Basic'teki olayları bağlamak için bulunan AddHandler gibi dil özelliklerini kullanamazsınız. Takip eden bağlantıdaki dökümanda var olan metodun bir olaya gereken tip bilgilerinin yansıma ile alınarak nasıl bağlanacağını ve yine yansıma yardımıyla dinamik metodların oluşturulması ve bu metodların olaylara bağlanması incelenmiştir.
http://msdn.microsoft.com/en-us/library/ms228976.aspx
İlişkili forum konuları :
- Yansıma kullanarak bir olay ile CustomHandler'ı bağlamak :
http://social.msdn.microsoft.com/forums/en/netfxbcl/thread/c083a0fd-9338-4f92-b6d4-4109096bfc5f/
- C# Reflection :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/d7f184f1-0964-412a-8659-6759a0e2db83/
- Yansıma ile olay oluşturma :
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/44b0d573-5c53-47b0-8e85-6056cbae95b0
- Yansıma ile olay yönetimi :
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1ead5b74-3d2f-41e0-b699-1f35e16305ec/
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:40Moderatör - Yansıma kullanarak bir olay ile CustomHandler'ı bağlamak :
-
Windows dosya sistemi içerisindeki dosya/klasör değişiklikleri nasıl tespit edilebilir?
FileSystemWatcher sınıfını kullanarak belirlenen bir klasördeki değişiklikleri tespit edebilirsiniz. Bu değişiklikler dosyaları ve alt klasörleri de kapsar. Ayrıca bu bileşen ile yerel bilgisayarda,ağ üzerinde ya da uzak bilgisayardaki değişiklikleri de tespit edebilirsiniz.
İlişkili forum konuları :
C# ile klasördeki dosya değişikliklerini nasıl izlerim?
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/6ec4b09e-da13-4aea-95db-b3e822fc6b5b/
Belli aralıklarla nasıl dosya oluştururum?
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/8d6d264c-40c6-4a82-8099-a3232333d49b/
C ve D sürücülerini yazılım yüklemesi/kaldırılması amacıyla izleme :
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/b5fff73b-d6b5-47e8-9334-fe31e259669d/
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:41Moderatör -
Uzun bir dosya yolunu kısa bir dosya yoluna dönüştürmek mümkün mü?
Framework bu işlem için bir destek sunmamaktadır ancak PInvoke kullanarak GetShortPathName isimli fonksiyon yardımıyla dosya yolunu kısaltmanız mümkündür.
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern int GetShortPathName(string longPath, [MarshalAs(UnmanagedType.LPTStr)]StringBuilder ShortPath, [MarshalAs(UnmanagedType.U4)]int bufferSize);
Ayrıntılı bilgi için :
http://msdn.microsoft.com/en-us/library/aa364989(VS.85).aspx
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:43Moderatör -
Bir Numaralandırma (Enumeration) üyesi string tipinden veriye nasıl dönüştürülür?
Enum bir veriyi karakter katarı (string) tipine dönüştürmek için aşağıdaki yöntemleri deneyebilirsiniz :
string enumEntryAsString = Enum.GetName(typeof(MyEnum), MyEnum.First);
Ya da,
MyEnum e = MyEnum.First; string enumEntryAsString = e.ToString();
Emre Günertürk, MSFT
Microsoft bu servisi kullanıcılarına teknik destek verme,Microsoft ürünleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ücretsiz sunmaktadır.
Bu içerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi gibi bir sorumluluk üstlenildiği anlamına gelmez.4 Ekim 2010 Pazartesi 17:45Moderatör