c# dosya bulunamadı hatası

kordon35 (18) 5 yıl önce sordu
void YaziYaz()
        {
                try
                {
                    PrivateFontCollection ozelFont = new PrivateFontCollection();
                    ozelFont.AddFontFile((Environment.CurrentDirectory + @"\font\Regular.otf").ToString());


                    yeniResim = new Bitmap(dosyaYolu);
                    Brush firca = new LinearGradientBrush(new Point(1, 1), new Point(100, 100), Color.FromArgb(255, Color.Black), Color.FromArgb(255, Color.Black));

                    Graphics gr = Graphics.FromImage(yeniResim);
                    gr.RotateTransform(0);
                    gr.DrawString("YONTEM", new Font(ozelFont.Families[0], 21, FontStyle.Regular), firca, 645, 210);
                    gr.DrawString("NO: " + textBox1.Text, new Font(ozelFont.Families[0], 21, FontStyle.Regular), firca, 105, 248);
                   
                    gr.RotateTransform(-0);
                    pictureBox1.Image = imgboyut(yeniResim,900,900);


                }
                catch (Exception hata)
                {
                    MessageBox.Show(hata.Message.ToString(), "Sistem Kaynaklı Hata..!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

windows 10 çalışan bu uygulama windows 7 de "File not found" hatası veriyor

Application.StartupPath.ToString();
AppDomain.CurrentDomain.BaseDirectory.ToString();

bunların ikisinide kullandım sonuç yine aynı hatta messagebox a kullandığım kodu şu şekilde yazdım 

" messagebox.show((Environment.CurrentDirectory + @"\font\Regular.otf").ToString())"

dosya yolunu doğru gösterdi fakat ne hikmetse hata vermeye devam ediyor yardımlarınız bekliyorum teşekkürler..

Toplam 2 cevap


kordon35 (18) 5 yıl önce cevapladı

Sorunu çözdüm windows 10  ".otf "  uzantılarını açıyormuş fakat windows 7 açmıyor dosyayı " .ttf " ye çevirdim sorun çözüldü. teşekkürler..

alattin (17125) 5 yıl önce cevapladı

Aşağıdaki kod uygulamanın olduğu klasör ne olursa olsun o klasörün altında Font klasörünün altındaki regular.otf dosyasını bulacaktır.

string appExePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string appPath = System.IO.Path.GetDirectoryName(appExePath);
string fontPath = appPath + @"\font\Regular.otf";

Bu kodu ekledikten sonra .exe dosyanın olduğu klasörde gerçekten Font diye bir klasör var mı, bu klasörde Regular.otf dosyası var mı kontrol et.