PDA

View Full Version : دایرکتوری



yavari
چهارشنبه 02 اسفند 1385, 20:13 عصر
سلام دوستان

بازم یه سوال ضایع ! :افسرده:
من واسه دسته بندی مد نظرم ، یه دایرکتوریهائی رو توسط برنامه ایجاد می کنم که آدرس نسبی اونا تو دیتابیسم ذخیره میشه !
مشکل اینجاست که بلافاصله بعد از ایجاد یه دایرکتوری نمی تونم اطلاعاتی که داخلش کپی کردمو ببینم و این پیغامو میده !
parameter is not valid !
اما اگه برنامه رو از نو اجرا کنم یا به عبارتی الان دایرکتوری من ایجاد نشده باشه هیچیش نیست !

ممنون میشم یکی بگه کجای کارم میلنگه !

programmermp
چهارشنبه 02 اسفند 1385, 20:29 عصر
سلام

کدتو بزار بفهمیم چی میگی

چطوری دایرکتوری ایجاد می کنی

چطوری می خواهی توش کپی کنی که همچین پیغامی می ده

mah.yar
پنج شنبه 03 اسفند 1385, 07:23 صبح
منم شبیه همین مشکلو دارم
بانک اطلاعلاتی من اکسس هستش و وقتی با کد زیر از بانکم کپی میگیرم حتما باید برنامه رو ریاستارت کنم تا برنامه بتونه اطلاعات رو از جای اصلیش بخونه چون به صورت اتواتیک جای بانک اطلاعاتی رو مسیری که فایل اونجا کپی شده در نظر میگره به همین خاطر اگه نام فایل کپی شده همنام با بانک باشه خوب مسلما کار میکنه اما اگه با یه نام دیگه ذخیره کنم نمیتونه

My.Computer.FileSystem.CopyFile(Application.Startu pPath & "\t1.mdb", Me.SaveFileDialog1.FileName)

روش کانکشن زدنم هم به صورت زیره


Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=t1.mdb;Persist Security Info=true;Jet OLEDB:Database Password=x")

مشکل کار کجاست؟

yavari
پنج شنبه 03 اسفند 1385, 09:25 صبح
سلام

البته مشکل من مربوط به بکاپ گیری نیست ولی یه جورائی شبیه کار مهیار جون هستش !
البته کار بی ربطی نمی کنم ، همه چی خوبه ! اما دقیقا بعد از یه ریستارت برنامه !
اینجوری دایرکتوری ایجاد می کنم

Dim d As String = Application.StartupPath & "\Picture\" & dirName
Directory.CreateDirectory(d).Create()
...
Directory.CreateDirectory(d).Refresh()همین که دایرکتوریم ایجاد میشه و فایل تصویریمو کپی میکنم داخلش ، دیگه تا ریستارت برنامه نمی تونم نه تنها به این دایرکتوری بلکه به فایل پیش فرضی که داخل دایرکتوری روت برنامم هست دسترسی داشته باشم

:افسرده: :افسرده: :افسرده:

programmermp
پنج شنبه 03 اسفند 1385, 09:40 صبح
سلام

خوب الان تا اینجاش درست

خوب می خواهی چطوری الان به فایل یا دایرکتوریت دسترسی پیدا کنی

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

ببین وقتی می گی یکبار برنامه باز و بسته می شه مشکل حل می شه یعنی برنامت به

نوعی renew می شه

کد های زیر رو تست بکن شاید جواب بده ک



me.refresh
Application.Run(New Form1())

که فکر کنم دومی جواب بده اگه اولیه جواب نده

yavari
پنج شنبه 03 اسفند 1385, 20:08 عصر
سلام

ممنون از توجه تون اما هیچکدوم جواب نداد !!! ... :افسرده: :افسرده: :افسرده:
انگار دایرکتوریم قفل میشه !!! چرا اینجوریه ؟؟؟
وی بی 6 کجائی که یادت به خیر !!! :چشمک:

ممنون

pegasos
شنبه 05 اسفند 1385, 09:36 صبح
با درود.

بچه ها راستش این چیزی که می گید من رو به تعجب واداشت و مجبور شدم یه تست بزنم.
من که مشکلی ندیدم.
من یه نمونه کد خودم رو می ذارم [متاسفانه با C Sharp هست من وی بی بلد نیستم]
ولی کلاسهای اصلی برای FrameWork است و فرقی در VB, C Sharp نداره .

در هر صورت اگه ابهامی بود دندم نرم بگید با VB هم می نویسم.

با امید موفقیت.



using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace IOTest
{
class Program
{
static void Main(string[] args)
{
// Specify the directory you want to manipulate.
string path = @"g:\MyDir";

try
{
// Determine whether the directory exists.
if (Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
return;
}

// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(path);
Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));

CreateFile(path);

}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally { }

Console.ReadLine();
}

private static void CreateFile(string path)
{
path += @"\MyTest.txt";

try
{

// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}

// Create the file.
using (FileStream fs = File.Create(path))
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// Add some information to the file.
fs.Write(info, 0, info.Length);
}

// Open the stream and read it back.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}

catch (Exception Ex)
{
Console.WriteLine(Ex.ToString());
}

}
}
}

yavari
یک شنبه 06 اسفند 1385, 19:58 عصر
سلام

البته اشتباه نشه مشکل من ایجاد دایرکتوری و یا کپی فایل نیست !
مشکل همونیه که در پست 1 بیان کردم !

FileSystem.FileCopy(Me.OpenFileDialog1.FileName, d & "\JeldBook.jpg")
احساس میکنم هرچی میکشم از این OpenFileDialog میکشم ! :چشمک:
البته من دقیقا اینکارو در وی بی 6 انجام دادم (بارها !) و همچین مشکلی رو نداشتم ! :عصبانی++:
اساتید کم لطفی نکنن ! :افسرده:

ممنون

yavari
دوشنبه 07 اسفند 1385, 21:11 عصر
سلام

یعنی کسی تابحال با همچین مشکلی برنخورده ؟؟؟

yavari
یک شنبه 20 اسفند 1385, 10:04 صبح
سلام

برا اینکه این تاپیکم بی جواب نمونه روشی که استفاده کردم برا حل این مشکلو میگم البته از کلک مایکروسافتی استفاده کردم ! :چشمک:


MsgBox("جهت تکمیل فرایند ایجاد کتاب ها ، برنامه را مجددا اجرا کنید ", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkOnly, "هشدار")
:لبخند: :لبخند: :لبخند:

بازم اگه دوستان راه حل منطقی ای دارن بی صبرانه منتظرم ! :لبخندساده:

ممنون

__H2__
یک شنبه 20 اسفند 1385, 10:56 صبح
سلام
من هم مثل آقای pegasos (http://www.barnamenevis.org/forum/member.php?u=7260) تا حالا به همچین مشکلی برنخوردم! و همچین کاری هم در یک برنامه دبیرخانه انجام داده بودم.
قطعات بیشتری از کدتان را بگذارید و حتماَ قطعه ای را که خطا میدهد هم بگذارید. (همان خطی که برنامه متوقف میشود.)