GÜNCELLEŞTİRME: Bu eser ama yorum olarak açıklanan önemli sınırlamalar vardır. Bu hala bazı cirumstances yararlı olabilir.
GÜNCELLEŞTİRME 2: Benim geçerli projede, Kullanıcılar her zaman belgeyi karşıya yükle. Sonuç olarak, Nerede MS Word çalıştıran ve dosya üzerinde adlandırıldı düşünüyor bir sorun haline çalıştırın yok. Bir sorun haline koştun, "dosya başka biri tarafından değiştirilmiş" ve bu bir basit semafor tür bayrak ile çözüldü. Meta veri alanı varsayılan değeri başka bir şey değiştirmek kullanıcı lüzum. İtemupdated() Aslında yeniden adlandırma işlemini gerçekleştirmeden önce ve o zamandan beri orada için geçerli bir değer alıcı görünüyor, Ben herhangi bir sorun olmadı. Sizin kilometre değişebilir.
Belirli bir adlandırma kuralı ile uymak için belirli belge kitaplığına yüklenen dosyaların adını değiştirmek için istemci şartı var. API does değil sağlamak bir "yeniden adlandırma()" yöntemi. Bunun yerine, Biz kullanın "MoveTo(…)". İşte bunun için kod en az bir bit:
Genel geçersiz kılma geçersiz ItemAdded(SPItemEventProperties Özellikler) { SPFile f = özellikleri.ListItem.File; f.MoveTo(özellikleri.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Sadece hileli parça olduğunu "özellikleri. ListItem.ParentList.RootFolder.Url". MoveTo() yöntem bir URL gerektirir. Bu dize Puan bana benim geçerli belge kitaplığı kök klasöre püresi. Bu benim olay alıcı herhangi bir sabit kodlama önlemek sağlar.
Bu yaptığını bir daha yararlı bir sürümüdür, Ama dosya adı "Title" atar:
Genel geçersiz kılma geçersiz ItemAdded(SPItemEventProperties Özellikler) { DisableEventFiring(); // Bu madde başlığı dosyanın kendi adını atayın. // NOT: Bu atama dosyasının kendisini değiştirmeden önce yer almalıdır. // Güncelleme calling() SPFile özelliklerinde geçersiz görünüyor // Biraz mantıklı. "Başlığı ile ilgili güncellemeleri" Bunu değiştirene kadar başarısız oldu (ve güncelleştirme() çağrı) // dosya adını değiştir taşındı. özellikleri.ListItem["Başlığı"] = özellikleri.ListItem.File.Name; özellikleri.ListItem.Update(); SPFile f = özellikleri.ListItem.File; // Dosya uzantısı olsun. Daha sonra ihtiyacımız. dize spfileExt = Yeni FileInfo(f.Name).Uzantısı; // Liste öğesinin kimliği için dosyayı yeniden adlandırın ve dosya uzantısı tutmak için kullanabilirsiniz. // Bunun bir parçası olduğu gibi. f.MoveTo(özellikleri.ListItem.ParentList.RootFolder.Url + "/" + özellikleri.ListItem["KİMLİĞİ"] + spfileExt); // Hareket tamamlama. f.Update(); EnableEventFiring(); } |