Ho una raccolta di file con percorsi completi (root/test/thing1/thing2/file.txt). Voglio foreach
su questa raccolta e rilasciare il file nella posizione definita nel percorso, tuttavia, se alcune directory non esistono, voglio che vengano create automaticamente. Il mio programma ha un "drop location" predefinito, come ad esempio z:/
. Il "drop location" inizia vuoto, quindi nel mio esempio sopra, il primo elemento dovrebbe creare automaticamente le directory necessarie per creare z:/root/test/thing1/thing2/file.txt
. Come posso fare questo?Crea automaticamente directory da percorsi lunghi
10
A
risposta
16
foreach (var relativePath in files.Keys)
{
var fullPath = Path.Combine(defaultLocation, relativePath);
var directory = Path.GetDirectoryName(fullPath);
Directory.CreateDirectory(directory);
saveFile(fullPath, files[relativePath]);
}
dove file è IDictionary<string, object>
.
10
string somepath = @"z:/root/test/thing1/thing2/file.txt";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName((somepath));
3
Controllare IO namespace (Directory, Path), penso che vi aiuteranno
using System.IO
controllarlo ..
string fileName [email protected]"d:/root/test/thing1/thing2/file.txt";
string directory = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
7
Directory.CreateDirectory("/root/...")
Crea tutte le directory e sottodirectory in il percorso specificato
1
string filename = "c:\\temp\\wibble\\wobble\\file.txt";
string dir = Path.GetDirectoryName(filename);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.Create(filename);
con adeguata gestione delle eccezioni, ovviamente.
0
Ho trovato l'impostazione del "percorso predefinito" all'inizio dell'esecuzione per essere utile e ridurre un po 'di codice ridondante (ad esempio, Path.Combine(defaultLocation, relativePath)
).
Esempio:
var defaultLocation = "z:/";
Directory.SetCurrentDirectory(defaultLocation);
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
Problemi correlati
- 1. Come gestire i percorsi lunghi in Bash?
- 2. GetFullPathNameW e lunghi percorsi file Windows
- 3. Percorsi in Codeigniter - Automaticamente
- 4. Percorsi lunghi durante la creazione con NuGet
- 5. Crea automaticamente requirements.txt
- 6. JSF Managed Bean crea automaticamente?
- 7. Intellij "Crea progetto automaticamente" guai
- 8. Crea directory utilizzando Nant
- 9. Crea directory + sottodirectory
- 10. NSThread crea automaticamente autoreleasepool ora?
- 11. Involgi automaticamente lunghi messaggi di commit Git in Vim
- 12. Crea segni di graduazione sottotramma più lunghi in matplotlib?
- 13. tipi di percorsi di directory con argparse
- 14. directory virtuale di IIS e percorsi di directory ASP.NET
- 15. Crea directory se non esiste
- 16. Crea directory se non esiste
- 17. Jenkins + Gerrit Trigger non crea automaticamente
- 18. SQLite formati da lunghi a larghi?
- 19. Crea file temporaneo e rimosso automaticamente
- 20. Crea automaticamente un diagramma delle classi
- 21. Xcode 6: Crea automaticamente la funzione init?
- 22. Come creare automaticamente le directory usando ofstream
- 23. Perché eclipse crea una directory .settings?
- 24. Come gestire decomprimere ZipFile con percorsi che sono troppo lunghi/duplicare
- 25. Ottieni automaticamente 14 percorsi hive in sharepoint 2010
- 26. Ottieni percorsi automaticamente in Play! 2.5.x quadro
- 27. Dump include percorsi da g ++
- 28. Crea directory a livello di codice
- 29. rsync - crea tutte le directory madri mancanti?
- 30. Concessione di "Crea directory" Privilegi in Oracle
Concordato, non c'è bisogno di controllare se directory esiste come fa questo internamente. – Squirrel