پیاده سازی شما نمیدونم چطور انجام شده ولی آنچه که از توضیحات شما متوجه شدم را در قالب یک پیشنهاد مطرح میکنم:

  1. شما فایل را از کاربر دریافت میکنید
  2. ممکن است کاربران فایل های همنام داشته باشند (مثلا 10 کاربر یک فایل PDF با نام "سوابق کار" دارند).
  3. قرار است تمام فایل ها در یک پوشه ذخیره شوند و امکان ذخیره فایل های همنام وجود ندارد (آیتم 2).
  4. در زمان ذخیره فایل در پوشه مورد نظر، ابتدا تمام اطلاعات فایل را بدست بیارید و در بانک اطلاعاتی ذخیره کنید.
  5. اطلاعات فایل مانند نام فعلی، پسوند فایل، حجم فایل و...
  6. در زمان ذخیره این اطلاعات در بانک اطلاعاتی، یک شماره منحصر به فرد از نوع Guid به اون ردیف تخصیص بدید.
  7. پس از ثبت اطلاعات در بانک اطلاعاتی، اقدام به ذخیره فایل در پوشه کنید و قبل از ذخیره نام فایل را به مقدار Guid که قبلا تولید شده تغییر بدید.
  8. حالا اطلاعات جدول بانک اطلاعاتی هر تغییری بکنه دیگه ارتباطی با فایل نداره (به غیر از مقدار Guid).
  9. هر زمان قرار شد فایل را در محل دیگری ذخیره کنید و یا به کاربر تحویل بدید، میتونید فایل موجود در سیستم که نام آن با مقدار Guid متناظر هستش را شناسایی کنید و در زمان تحویل به نام اصلی و پسوند اصلی به کاربر تحویل بدید.
  10. میتونید مقدار Guid را کلید اصلی جدول در نظر بگیرید.
  11. حالا اگر نیاز باشه که فایل های سیستم را بررسی کنید براحتی با یک حلقه میتونید تمام فایل ها را چک کنید و اگر فایل مورد نظر موجود نبود به کاربر پیغام بدید.