Chcę sprawdzić, czy plik istnieje w określonym folderze z SSIS. Jak mogę to zrobić?Zadanie skryptu SSIS, aby sprawdzić, czy plik istnieje w folderze czy nie
Odpowiedz
W SSIS nie ma natywnych zadań, które mogą wykonać tę kontrolę, ale można tego dokonać za pomocą zadania skryptowego, ale sugeruję, aby sprawdzić poniższe łącza w celu wykonania prostych kroków wymaganych do osiągnięcia tego.
http://www.bidn.com/blogs/DevinKnight/ssis/76/does-file-exist-check-in-ssis
Zmienne:
folder - łańcuch - C :: \ Temp \
plik - łańcuch - 1.txt
Fileexists - logiczna - False
public void Main()
{
string folder = Dts.Variables["User::folder"].Value.ToString(); //@"C:\temp\";
string file = Dts.Variables["User::file"].Value.ToString(); //"a.txt";
string fullPath = string.Format(@"{0}\{1}", folder, file);
Dts.Variables["User::fileExists"].Value = File.Exists(fullPath);
Dts.TaskResult = (int)ScriptResults.Success;
}
Próbowałem powyższej odpowiedzi, ale otrzymałem błąd podczas uruchamiania ssis w naszym środowisku. Wyjątek został zgłoszony przez docelowe wywołanie. – user2756589
Upewnij się, że te zmienne są przekazywane do skryptu; folder i plik jako ReadOnly, fileExists jako ReadWrite –
Zamiast alternatywy dla zmiennej wyjściowej, można również zmienić wartość Dts.TaskResult
na podstawie tego, czy plik istnieje, czy nie. Poniższy fragment kodu kończy się niepowodzeniem zadania skryptu, jeśli plik nie istnieje. (Tworzy również wpis w dzienniku, jeśli włączone jest rejestrowanie.)
public void Main()
{
string fileName = Dts.Variables["User::sourcePath"].Value.ToString() + Dts.Variables["User::fileName"].Value.ToString();
if (File.Exists(fileName))
{
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.Log(string.Format("File {0} was not found.",fileName),0,null);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
Można użyć Foreach Loop Container
i po prostu umieścić wszystkie swoje rzeczy do niego. Zostanie wykonany, jeśli plik istnieje i nie będzie, jeśli nie. Bardzo proste :)
Very nice! Szukałem czegoś prostego i łatwego do wdrożenia, a to działa dobrze. – Vladimir
- 1. Jak sprawdzić, czy plik już istnieje w folderze
- 2. Jak sprawdzić, czy plik istnieje w ansibla?
- 3. Jak uzyskać instalację Inno, aby sprawdzić, czy plik nie istnieje?
- 4. Jak używać skryptu powłoki, aby sprawdzić, czy istnieje wiadro?
- 5. Czy można uruchomić zadanie SSIS z .net?
- 6. Jak sprawdzić, czy plik istnieje w pilocie?
- 7. Jak sprawdzić w pythonie, czy plik w folderze się zmienił?
- 8. Czy istnieje sposób, aby sprawdzić, czy wartości nie numerycznej makro
- 9. Jak sprawdzić, czy istnieje katalog zawierający plik?
- 10. Jak najlepiej sprawdzić, czy plik cookie istnieje?
- 11. Czy istnieje zadanie MSBuild, aby sprawdzić, czy ciąg zawiera inny ciąg (podobny do string.contains)
- 12. Jak sprawdzić, czy sesja istnieje, czy nie?
- 13. Sprawdzanie, czy istnieje plik zasobów
- 14. Sprawdza czy plik istnieje
- 15. Czy można użyć SFINAE/szablonów, aby sprawdzić, czy operator istnieje?
- 16. SSIS: Jak wyłączyć zadanie?
- 17. Jak sprawdzić, czy plik lub katalog plików istnieje w bash?
- 18. SSIS - Jak wykonać zadanie polegające na niepowodzeniu składnika skryptu?
- 19. Jak sprawdzić, czy plik istnieje w C++ w sposób przenośny?
- 20. Jak sprawdzić, czy nieruchomość istnieje?
- 21. Jak sprawdzić, czy plik istnieje w Qt w języku C++
- 22. Jak sprawdzić, czy plik istnieje w katalogu Dokumenty w Swift?
- 23. Jak sprawdzić, czy plik zasobów istnieje w Javie?
- 24. Czy istnieje kod VBA, aby sprawdzić, czy plik Enterprise Project 2013 został wyewidencjonowany przed otwarciem?
- 25. Czy istnieje sposób, aby zatrzymać pokojowo konkretne zadanie pracownika selera?
- 26. Jak sprawdzić, czy katalog istnieje w Perlu?
- 27. wybiórczo wykonać zadanie w ssis control flow
- 28. Jak sprawdzić, czy element tablicy istnieje, czy nie w javascript?
- 29. jak sprawdzić, czy istnieje atrybut, czy nie w XSL
- 30. Jak sprawdzić, czy plik istnieje w aplikacji WindowsStore
Możesz użyć tego jako punktu wyjścia. http://stackoverflow.com/questions/7385251/how-to-check-if-a-file-exists-in-a-folder –
Używam poniższego kodu Dts.Variables ("FileExists"). = File.Exists (Dts.Variables ("FileLocation"). Wartość) gdzie FileExists jest zmienną binarną, a "FileLocation" jest zmienną łańcuchową o ścieżce pliku Chociaż plik jest obecny w folderze, nadal podaje wartość False . – user1429135
Ciekawe, czy podane poniżej rozwiązanie było dla Ciebie przydatne i czy udało Ci się rozwiązać problem. Twoja opinia będzie pomocna dla mnie, a także przyszłych użytkowników, którzy mają podobny problem. Dzięki. –