الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[تنبيه - عنوان غير مناسب : ]فكرة برمجية

بدأه amjad@ في 23 سبتمبر 2011 · 11 رد · 809 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أبغى اسوي نظام باك اب مو رفع والسلام ..

يعني احدد تواريخ انشاء الملفات وكدا الخ ...

ثانيا والأهم ابغى المستخدم في موقعي لمن يضغط على زر معين يزرع في جهازه مجلد مو في سيرفر الموقع .. يزرع في جهازه نفسه.. في الدكيومنت في السي ..

بعدين اعطيه رساله انو في مجلد اسمه كذا وكذا انشئ تلقائياً كون حط فيه مجلد مشروعك للباك اب ...

ويصير كلما المستخدم سجل دخوله يشيك على هذا المجلد ويرفع منها المجلدات اللي بداخله

بس :)

مااعرف مامدى صعوبه الفكره برمجيا ... هل يمكن تطبيقها ؟؟ ساعدوني الله يسعدكم

#2

سويت اول خطوه اني انشأت مجلد في السي برمجيا كالتالي :

string activeDir = @"C:\iProject";
        //Create a new subfolder under the current active folder
        string newPath = System.IO.Path.Combine(activeDir,NameProj);
        // Create the subfolder
        System.IO.Directory.CreateDirectory(newPath);
        // Create a new file name. This example generates a random string.
       // string newFileName = System.IO.Path.GetDirectoryName();
        // Combine the new file name with the path
        //newPath = System.IO.Path.Combine(newPath, newFileName);
        // Create the file and write to it.
        // DANGER: System.IO.File.Create will overwrite the file
        // if it already exists. This can occur even with random file names.
        if (!System.IO.File.Exists(newPath))
        {
            using (System.IO.FileStream fs = System.IO.File.Create(newPath))
            {
                for (byte i = 0; i < 100; i++)
                {
                    fs.WriteByte(i);
                }
            }
        }
        // Read data back from the file to prove that the previous code worked.
        try
        {
            byte[] readBuffer = System.IO.File.ReadAllBytes(newPath);

            foreach (byte bo in readBuffer)
            {
                Console.WriteLine(bo);
            }
        }
        catch
        {
            Console.WriteLine("خطأ");
        }
        // Keep the console window open in debug mode.
        System.Console.WriteLine("press any key to exit.");
        System.Console.ReadKey();

يضيف وكل شي تمام بس يطلعلي خطأ في الصف التالي:

 using (System.IO.FileStream fs = System.IO.File.Create(newPath))

نص الخطأ :

System.UnauthorizedAccessException: Access to the path 'C:\iProject\سكاكر' is denied

احد يقدر يصححلي الخطأ ماعرفت اصححه جزاكم الله خير

#3

هههههههههه تم تصحيح الخطأ وصار يضيف المجلد في C بدون اي مشاكل

اريد ان ابدأ بالخطوة التي تليها

كيف انشأ ملفات واحدد تاريخ انشائها ...

#4

السلام عليكم ورحمه الله وبركاته

اخي يمكنك انشاء ملف عن طريق الكود التالي

File.Create("Path")

اما تاريخ الانشاء يحدد من قبل نظام التشغيل ..

.:: Wish to become better and better ::.

#5

طيب لو انا ماأنشأت الملفات ... انشأت فقط في مجلد السي مجلد يعنبر هوا الروت زداخل هذا المجلد عدة مجلدات

المستخدم يضع في هذه المجلدات الفرعيه مجموعة من الملفات ...

كيف يمكن الحصول على مسار هذه الملفات ؟؟

#6

لإنشاء ملف عند المستخدم تحتاج لتصريح بذلك

اما عليك استخدام activex او احد تقنيات التي تعمل على طرف الزبون

#7

السلام عليكم ورحمه الله وبركاته

اخي يمكنك الفئة FileInfo واستخدام الخاصيه FullName للحصول على مسار الملف كاملا

.:: Wish to become better and better ::.

#8
اقتباس

ثانيا والأهم ابغى المستخدم في موقعي لمن يضغط على زر معين يزرع في جهازه مجلد مو في سيرفر الموقع .. يزرع في جهازه نفسه.. في الدكيومنت في السي ..

اقتباس

سويت اول خطوه اني انشأت مجلد في السي برمجيا

صحيح أنشأت مجلد في السي برمجيا لكن في جهاز الخادم وليس على جهاز العميل ولو جربت من جهاز اخر متصل بجهاز الخادم لديك ستجد ان العميل عندما ينفذ الكود سيتم انشاء المجلد في جهاز الخادم ... المسأله أكبر من كذه تحتاج javascript و السماح لــ ActiaveX لتنفيذها على جهاز العميل .

اسأل مجرب .

Many of life’s failures are people who did not realize how close they were to success when they gave up

Thomas Edison

#9
mamababadada كتب:

صحيح أنشأت مجلد في السي برمجيا لكن في جهاز الخادم وليس على جهاز العميل ولو جربت من جهاز اخر متصل بجهاز الخادم لديك ستجد ان العميل عندما ينفذ الكود سيتم انشاء المجلد في جهاز الخادم ... المسأله أكبر من كذه تحتاج javascript و السماح لــ ActiaveX لتنفيذها على جهاز العميل .

اسأل مجرب .

جزاكم الله خير ... بس برضو مافهمت ... كيف مو على جهاز العميل ؟؟ .... اذا هوا الموقع اتوماتيكي ينشأ المجلد

بالله لو احد يعرف يقولي ..

#10

أخي الكريم كما قالو لك الإخوة من قبل

أنت عندما تنشأ مشروع الآن وتنشأ مجلد عن طريقه فإنه سوف ينشأ في السواقة c بشكل نظامي وذلك لأن كومبيوترك هو الخادم والزبون في نفس الوقت

أما عندما ترفع هذا الموقع على الإنترنت فسيكون جهازك هو الزبون وموقعك موجود على الخادم أي السيرفر

فعند إعطاء الأمر بإنشاء مجلد سيتم إنشاءه على جهاز الخادم أي الذي عليه الموقع وليس جهازك أنت

لذلك عليك إستخدام javascript لأن الكود المكتوب بها سوف ينفذ على جهاز العميل أي جهازك أنت وليس الخادم

و عندما يعمل كود javascript على الزبون أن يوافق على تنفيذ الكود حتى يتم تنفيذه وإنشاء المجلد وباقي الأشياء التي تريدها

والله أعلم

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#11

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
<script type="text/javascript">
function Createfolder()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var a = fso.CreateFolder("c:\\MyProfile");
}
function uploadfiles()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	if(fso.FolderExists("c:\\MyProfile") )
	{
	//code here
	}
}
</script>
</head>

<body>
<input name="Button1" type="button" value="Create Folder"  onclick="Createfolder()" />
<h1>Refernce</h1>
<a href="http://msdn.microsoft.com/en-us/library/z9ty6h50%28v=vs.85%29.aspx">http://msdn.microsoft.com/en-us/library/z9ty6h50%28v=vs.85%29.aspx</a>
Method Suported :
BuildPath Method |<br />
CopyFile Method |<br />
CopyFolder Method |<br />
CreateFolder Method |<br />
CreateTextFile Method |<br />
DeleteFile Method |<br />
DeleteFolder Method |<br />
DriveExists Method |<br />
FileExists Method |<br />
FolderExists Method |<br />
GetAbsolutePathName Method |<br />
GetBaseName Method |<br />
GetDrive Method |<br />
GetDriveName Method |<br />
GetExtensionName Method |<br />
GetFile Method |<br />
GetFileVersion Method |<br />
GetFileName Method |<br />
GetFolder Method |<br />
GetParentFolderName Method |<br />
GetSpecialFolder Method |<br />
GetStandardStream Method | <br />
GetTempName Method |<br />
MoveFile Method |<br />
MoveFolder Method | <br />
OpenTextFile Method<br />

</body>

</html>

في تابع رفع الملفات تحتاج الى الى الحصول على كل مجلد ومن ثم الدوران بحلقة على كل مجلد والحصول على كل ملف ضمنه ايضا يمكنك عن طريق تابع تراجعي فعل ذلك للحصول على مسار كل ملف

ولكن لتخفيف العبىء

يمكنك انشاء ملف txt ضمن المسار وتعبئة كل المسارات الحالية بعد رفع الملفات ورفع ملف المسارات

ومن ثم عند الدخول وبحدث ال load تقوم بالتحقق من ملف مسارات الذي تم رفعه والملف الموجود بعد أنشاء المسارات الجديدة ورفع فقط المسارات الفارقة بين الملفين

ايضا يمكنك حذف الملفات التي يتم رفعها

بالنهاية المشكلة تكمن بعملية الرفع

تتوفر عدة طرق إي جاكس للرفع او استخدام الفلاش او السيلفر لايت ( لاتقلي من الاول كنت استخدمتهم) انا وضعت الجواب من أجل الإفادة مع العلم ان الطريقة غير فعالة :)

دمتم بخير

مواضيع مشابهة