PDA

View Full Version : سوال: از بین رفتن آیکون فولدر بعد از کپی کردن فولدر



forodo
دوشنبه 16 دی 1392, 15:06 عصر
سلام
من با استفاده از تابع زیر فولدرها و فایلهای یک فولدر رو کپی می کنم ولی بعد از کپی آیکونی که روی فولدرم بود از بین می ره.
ولی با ویندوز و به صورت عادی که کپی می کنم این مشکل به وجود نمی آد.
نگاه کردم و دیدم که تمام فایلها هم کپی شده.
لطفاً راهنمایی کنید.
با تشکر
قبل از کپی:
114943
بعد از کپی:
114944
یادم رفت کدارو بذارم:

private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
// Get the subdirectories for the specified directory.
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
DirectoryInfo[] dirs = dir.GetDirectories();

if (!dir.Exists)
{
throw new DirectoryNotFoundException(
"Source directory does not exist or could not be found: "
+ sourceDirName);
}

// If the destination directory doesn't exist, create it.
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}

// Get the files in the directory and copy them to the new location.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string temppath = Path.Combine(destDirName, file.Name);
file.CopyTo(temppath, false);
}

// If copying subdirectories, copy them and their contents to new location.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
string temppath = Path.Combine(destDirName, subdir.Name);
DirectoryCopy(subdir.FullName, temppath, copySubDirs);
}
}
}

forodo
سه شنبه 17 دی 1392, 10:57 صبح
با خود ویندوز روی آیکون راست کلیک می کنم و کپی میزنم بعد جایی paste می کنم آیکون هم باهاش می افته ولی با کدایی که نوشتم آیکون کپی نمی شه.
نمی دونم چه فرقی داره؟
حتی نگاه کردم اون فایلی که باعث تغییر آیکون هم می شه کپی می شه.

shahryari
سه شنبه 17 دی 1392, 12:01 عصر
سلام
هنگام عوض کردن آیکون فولدر ، مشخصات و مسیر آیکون مربوطه در فایل desktop.ini داخل همان فولدر ذخیره میشود
این فایل بصورت مخفی و سیستمی است :
1- اگر این فایل همراه با پوشه کپی نشود
2- اگر آیکونی را که برای پوشه اختصاص داده اید در سیستم مقصد وجود نداشته باشد
آیکون پوشه بصورت پیش فرض نمایش داده میشود
موفق باشد

forodo
سه شنبه 17 دی 1392, 12:25 عصر
سلام
هنگام عوض کردن آیکون فولدر ، مشخصات و مسیر آیکون مربوطه در فایل desktop.ini داخل همان فولدر ذخیره میشود
این فایل بصورت مخفی و سیستمی است :
1- اگر این فایل همراه با پوشه کپی نشود
2- اگر آیکونی را که برای پوشه اختصاص داده اید در سیستم مقصد وجود نداشته باشد
آیکون پوشه بصورت پیش فرض نمایش داده میشود
موفق باشد
تعجب من دقیقاً همینجاست.
گزینه های 1 و 2 شما موجود هست ولی باز نشون نمی ده.
عکس زیر فایلهای داخل فولدر کپی شده رو نشون می ده. چون با Show Hidden کردن از folder option از منوی tools اینارو نشون نمی ده با کد اوردم که بگم هست .
عجباااااااااا
114996

shahryari
سه شنبه 17 دی 1392, 12:27 عصر
محتویات فایل desktop.ini را بذار تا توضیح بدم

forodo
سه شنبه 17 دی 1392, 12:33 عصر
محتویات فایل desktop.ini را بذار تا توضیح بدم
با این خط کد درآوردم. نمی دونم درسته یا نه!

richTextBox1.Text = File.ReadAllText(radGridView2.CurrentRow.Cells["a"].Value.ToString());

اینارو به من نشون داد:

[.ShellClassInfo]
IconFile=FolderMarker.ico
IconIndex=0


ایناهم برای اونی هستش که داخل فولدر اصلیم هست که آکون روش هست:

[.ShellClassInfo]
IconFile=FolderMarker.ico
IconIndex=0

shahryari
سه شنبه 17 دی 1392, 12:43 عصر
فایل FolderMarker.ico همون فایل آیکونی است که به پوشه اختصاص داده اید که باید در پوشه شما کپی شده باشد
هنگام کپی ایندو فایل را در داخل پوشه بررسی کن تا وجود داشته باشند

forodo
سه شنبه 17 دی 1392, 12:46 عصر
در پست شماره 4 عکس زیر رو گذاشتم که برای آدرسی هستش که در اونجا فولدرم رو کپی کردم.
هر دوتا فایلی که باید باشه موجود هست.
114997

shahryari
سه شنبه 17 دی 1392, 12:53 عصر
این روش را تست کنید:
هر فولدر را بعداز کپی رفرش کنید
System.IO.DirectoryInfo Myfolder = new System.IO.DirectoryInfo(@"C:\Myfolder");
Myfolder .Refresh();

forodo
سه شنبه 17 دی 1392, 13:12 عصر
این خطوط رو:

// Get the files in the directory and copy them to the new location.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string temppath = Path.Combine(destDirName, file.Name);
file.CopyTo(temppath, false);
}

// If copying subdirectories, copy them and their contents to new location.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
string temppath = Path.Combine(destDirName, subdir.Name);
DirectoryCopy(subdir.FullName, temppath, copySubDirs);
}
}


اینطوری نوشتم: درسته جاش؟؟؟ اگه جاش درسته که بازم نشد!!!:گیج:

// Get the files in the directory and copy them to the new location.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string temppath = Path.Combine(destDirName, file.Name);
file.CopyTo(temppath, false);
file.Refresh();
}

// If copying subdirectories, copy them and their contents to new location.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
string temppath = Path.Combine(destDirName, subdir.Name);
DirectoryCopy(subdir.FullName, temppath, copySubDirs);
subdir.Refresh();
}
}

forodo
سه شنبه 17 دی 1392, 17:59 عصر
دیگه چیکارش کنم؟؟؟
اینهمه توی اینترنت گشتم یه سورس کپی خوب پیدا کردم ولی حالا به خاطر یه عکس که کپی نمی شه باید بیخیال بشم؟؟؟
لطفاً راهنمایی کنید.

forodo
چهارشنبه 18 دی 1392, 09:45 صبح
دوستان من هرچیزی رو که آیکون داره کپی می کنم آیکونش از بین می ره.
فولدر به صورت خام میشه.

amirhossein.h
چهارشنبه 18 دی 1392, 10:55 صبح
بعد از اینکه کپی کردی یه بار کامپیوتر و ریست کن بعد یه نگاهبه فولدرا بنداز ببین همونطورین باز؟؟؟؟

forodo
چهارشنبه 18 دی 1392, 12:05 عصر
بله. هیچ فرقی نکردن.

amirhossein.h
چهارشنبه 18 دی 1392, 14:27 عصر
change icon of folder (http://www.codeproject.com/Articles/9331/Create-Icons-for-Folders-in-Windows-Explorer-Using)

یه نگاه به لینک بالا بکن
من تست کردم درست بود
نتونستی دانلود کنی بگو برات بزارم

forodo
چهارشنبه 18 دی 1392, 15:09 عصر
change icon of folder (http://www.codeproject.com/Articles/9331/Create-Icons-for-Folders-in-Windows-Explorer-Using)

یه نگاه به لینک بالا بکن
من تست کردم درست بود
نتونستی دانلود کنی بگو برات بزارم
ممنون.
باید برم اون قسمت از کداش رو که نیاز دارم در برنامه ام بذارم و موقع کپی بگم هرجا فایل آیکون دیدی یک لول برگرد عقب و برای فولدر قرارش بده.