پیاده سازی شما نمیدونم چطور انجام شده ولی آنچه که از توضیحات شما متوجه شدم را در قالب یک پیشنهاد مطرح میکنم:
- شما فایل را از کاربر دریافت میکنید
- ممکن است کاربران فایل های همنام داشته باشند (مثلا 10 کاربر یک فایل PDF با نام "سوابق کار" دارند).
- قرار است تمام فایل ها در یک پوشه ذخیره شوند و امکان ذخیره فایل های همنام وجود ندارد (آیتم 2).
- در زمان ذخیره فایل در پوشه مورد نظر، ابتدا تمام اطلاعات فایل را بدست بیارید و در بانک اطلاعاتی ذخیره کنید.
- اطلاعات فایل مانند نام فعلی، پسوند فایل، حجم فایل و...
- در زمان ذخیره این اطلاعات در بانک اطلاعاتی، یک شماره منحصر به فرد از نوع Guid به اون ردیف تخصیص بدید.
- پس از ثبت اطلاعات در بانک اطلاعاتی، اقدام به ذخیره فایل در پوشه کنید و قبل از ذخیره نام فایل را به مقدار Guid که قبلا تولید شده تغییر بدید.
- حالا اطلاعات جدول بانک اطلاعاتی هر تغییری بکنه دیگه ارتباطی با فایل نداره (به غیر از مقدار Guid).
- هر زمان قرار شد فایل را در محل دیگری ذخیره کنید و یا به کاربر تحویل بدید، میتونید فایل موجود در سیستم که نام آن با مقدار Guid متناظر هستش را شناسایی کنید و در زمان تحویل به نام اصلی و پسوند اصلی به کاربر تحویل بدید.
- میتونید مقدار Guid را کلید اصلی جدول در نظر بگیرید.
- حالا اگر نیاز باشه که فایل های سیستم را بررسی کنید براحتی با یک حلقه میتونید تمام فایل ها را چک کنید و اگر فایل مورد نظر موجود نبود به کاربر پیغام بدید.