07-08-2009, 08:37
|
|
|
חבר מתאריך: 13.02.09
הודעות: 365
|
|
ה Title הזה נמצא במה שקרוי NTFS Alternative Data Stream ובקיצור ADS. האקספלורר שם את המאפיינים הנוספים של הקובץ, בינם ה Title, ב ADS משלו. עד כמה שאני יודע אין דרך לגשת לשם ישירות מ Net. אלא רק דרך פונקציות Win32. אתה יכול לעשות את זה בעקיפין מ Net. ע"י InterOp - המכניזם של הפעלת פונקציות שאינן Net. מתוך #c ושאר השפות.
הרעיון הוא כזה: NTFS מאפשר "לתלות" על כל קובץ כמה streams. כלומר: יש כמה תכנים לאותו קובץ. שמו של התוכן הראשי הוא כשם הקובץ, נניח c:\myfile.txt, תכנים נוספים שמם הוא משהו כגון c:\myfile.txt:my_alternate_stream1. ה ADS שאתה צריך שמו הוא כשם הקובץ, אחריו נקודותיים, אחריהן תו לא דפיס (זה שנראה כמו עלה תלתן), ואחריו המחרוזת SummaryInformation. הבעייה היא שסימן הנקודותיים : אינו תו חוקי בשם קובץ ולכן רוב הפונקציות שניגשות לקבצים מסרבות לפתוח את התוכן המשני. יוצאת מו הכלל היא הפונקציה CreateFile של Win32 ולכן חייבים להשתמש בה.
יש דוגמאות לזה באינטרנט, מה שמשותף לכולן הוא... שהן מסובכות. עליהן לספק שיטה למצוא את רשימת התכנים האלטרנטיביים ולקרוא מבינם את זה כשאתה כבר קורא את התוכן המשני - צריך לדעת את הפורמט הפנימי שלו. אני מניח שאפשר למצוא ספריות שעושות את כל העבודה השחורה בשבילך, למשל פה: http://www.codeproject.com/KB/cs/ntfsstreams.aspx. זה טוב אם אתה מפתח תוכנה אבל חסר תועלת אם אתה רק מנסה ללמוד #c.
אם אתה רוצה דווקא Title של מסמך Microsoft Office אזי השיטה שונה. אפשר לגשת אליו דרך DLL שמספקת מיקרוסופט http://support.microsoft.com/kb/224351.
|