PDA

View Full Version : سوال: چرا این کد درست کار نمی کنه؟



water_lily_2012
سه شنبه 01 شهریور 1390, 18:00 عصر
سلام
من از این دو کد استفاده می کنم. ولی هر بار نبود فایل را گزارش میده علت چیه؟
البته فایل در مسیر هست.

private void button1_Click(object sender, EventArgs e)
{
if (System.IO.File.Exists(@"E:\aaa.txt"))
MessageBox.Show("ok");

}

public string IsFileSafe(string USBPath)
{
String line;
try
{
//Pass the file path and file name to the StreamReader constructor
StreamReader sr = new StreamReader("E:\\aaa.txt");
line = sr.ReadLine();
if (line == "1234")
return "Yes";
else
return "No";
}
catch (Exception e)
{
return "Exception: " + e.Message;
}
}

mamrez_kh
سه شنبه 01 شهریور 1390, 18:16 عصر
اگر فایل موجود باشه معمولاً از اینه که فایل توسط یه برنامه دیگه بازه (مثلاً notepad). اگر exceptionی که گذارش میکنه رو بذارید شاید بیشتر بتونیم راهنماییتون بکنیم

water_lily_2012
سه شنبه 01 شهریور 1390, 21:34 عصر
در کامپیوتر خودم مشکلی نداره. اما در سیستم های دیگه خطای Can Not Find File in path را داره.
سیستم عامل من ویندوز XP SP2 هست. در جاهای دیگه XP SP3 و 7 بود.

mamrez_kh
سه شنبه 01 شهریور 1390, 22:06 عصر
Can Not Find File in path فقط وقتی رخ میده که فایل موجود نباشه یا آدرس فایل رو اشتباه زده باشی. من خودم با این کدها خیلی کار کردم و تا الآن هیچ مشکلی واسم پیش نیومده. نمیدونم برنامت واسه چیه ولی چیزی که از برنامت حدس زدم اینه که فایل مورد نظرت روی flash هستش. اگه حدسم درست بود اون وقت مشکل از این جاست که ممکنه اسم درایوی که به flash اختصاص پیدا میکنه تو سیستم های مختلف، متفاوت باشه. اگر حدسم اشتباه بود، برنامه بذار اینجا تا یه تستی بکنمش ببینم مشکل از چیه

water_lily_2012
چهارشنبه 02 شهریور 1390, 14:33 عصر
این هم یک نمونه در سیستم من که کار نمیده.







74312

Esmail Solhkhah
چهارشنبه 02 شهریور 1390, 14:48 عصر
دوست عزیز شما تو کلاستون نوشید که بدون بررسی مجود فایل بره اونو باز کنه

خوبیش اینه که از مدیریت استثنا استفاده کردید

پس طبیعیه که اگه اون فایل تو درایو E نباشه یا اصلا درایو E وجود نداشته باشه یا قابل دسترس نباشه، کد موجود تو Catch اجرا میشه که بازم اونو خودتون نوشتید

پس مورد چیه ؟

mamrez_kh
چهارشنبه 02 شهریور 1390, 14:52 عصر
من که مشکلی تو کدتون ندیدم، روی سیستم من هم به خوبی جواب داد (ویندوز 7 64 بیتی). این کد رو جایگزین اون کدی که تو کلاستون هست بکنید ببینید بازم همون مشکل رو داره
public string IsFileSafe()
{
String line;
if (System.IO.File.Exists(@"E:\aaa.txt"))
{
//Pass the file path and file name to the StreamReader constructor
StreamReader sr = new StreamReader("E:\\aaa.txt");
line = sr.ReadLine();
if (line == "1234")
return "Yes";
else
return "No";
}
else
{
return "file does not exists";
}
}

mamrez_kh
چهارشنبه 02 شهریور 1390, 14:54 عصر
یه سوال، درایو E درایو سیستمی نیست که؟

water_lily_2012
چهارشنبه 02 شهریور 1390, 15:09 عصر
نه درایو سیستمی نیست. در ضمن درایو را عوض کردم.
سیستم عامل من هم ویندوز 7 64 بیتی هست.
کد شما هم خطای File Dose Not exist را تولید می کنه.

water_lily_2012
چهارشنبه 02 شهریور 1390, 15:11 عصر
کد ساده ای هست نمی دونم چرا کار نمیده.
تازه از روش های مختلفی استفاده کرده ام همه نبود فایل را گزارش میده.
باید کارم را تموم کنم و دو روزه که این یه ذره کد مرا مسخره کرده.

mamrez_kh
چهارشنبه 02 شهریور 1390, 15:18 عصر
تنها چیزی که به ذهنم میرسه اینه که درایو سیستمی باشه یا user اجازه دسترسی به اون درایو رو نداشته باشه. run as administrator رو هم برای برنامتون امتحان بکنید، اگر نشد من دیگه چیزی نمیدونم

water_lily_2012
چهارشنبه 02 شهریور 1390, 15:31 عصر
نه متاسفانه در Admin هم همین خطا.
مهم نیست حالا که این طور شد فکر کنم بهتره از فایل های XML استفاده کنم.
بهر حال تشکر از کمکتون

saeid4634
چهارشنبه 02 شهریور 1390, 15:34 عصر
permission درايو و فايلت رو با everyone تنظيم كن و دسترسي Full control رو هم بهش بده.

saeid4634
چهارشنبه 02 شهریور 1390, 15:40 عصر
رو سيستم من جواب ميده مشكلي نداره، ‌Windows server 2003

خوب به يه روش ديگه بخون مثلاً باينري

محسن شامحمدی
چهارشنبه 02 شهریور 1390, 15:43 عصر
در کامپیوتر خودم مشکلی نداره. اما در سیستم های دیگه خطای Can Not Find File in path را داره.

معذرت می خوام که این مطلب شاید مسخره رو بهتون گوشزد ولی به من حق بدید چون من نمی دونم شما در چه سطحی هستید.
توی کامپیوتر شما کار می کنه چون چنین فایلی در درایو E وجود داره ولی در سیستم های دیگه کار نمی کنه چون این فایل در درایو E شون وجود نداره دیگه.مگر غیر اینه؟

water_lily_2012
چهارشنبه 02 شهریور 1390, 16:01 عصر
معذرت می خوام که این مطلب شاید مسخره رو بهتون گوشزد ولی به من حق بدید چون من نمی دونم شما در چه سطحی هستید.
توی کامپیوتر شما کار می کنه چون چنین فایلی در درایو E وجود داره ولی در سیستم های دیگه کار نمی کنه چون این فایل در درایو E شون وجود نداره دیگه.مگر غیر اینه؟

نه این طور نیست. فایل هست. با روش های مختلفی هم این کد را نوشتم. درایو ها را عوض کردم . اسم فایل را عوض کردم. پسوند را تغییر دادم. خلاصه هزار بلا سر این فایل و کد آوردم ولی نشد.