Je développe une application web C# asp.net. J'en ai fini avec ça, mais j'ai ce petit problème. Je veux enregistrer des fichiers xml dans le dossier "Users" de mon projet, mais si je ne code pas psychiquement le chemin "C: ...... \ Users" dans mon projet, il veut enregistrer le fichier dans ce "C: \ Program Files (x86) \ Fichiers communs \ microsoft partagé \ DevServer \ 10.0 \ Users" dossier, c'est un problème ennuyeux parce que je ne peux pas utiliser le répertoire codé en dur sur notre serveur d'hôtes Web. En outre, j'ai une liste de cases à cocher qui remplit à partir du dossier "DownloadLibrary" dans mon projet, et son suppose de télécharger les fichiers de ce pli, mais aussi en regardant le "C: \ Program Files (x86) \ Fichiers communs \ Microsoft partagé \ DevServer \ 10.0 \ "dossier pour le téléchargement même si son remplissage du dossier correct. Je suis très confus, c'est la première fois que quelque chose comme ça m'est arrivé. Quelqu'un peut-il m'aider s'il vous plaît avec ceci, c'est la seule chose qui se trouve sur mon chemin pour terminer ce projet.Visual Studio 2010 répertoire de travail
Répondre
Vous ne voulez pas du tout utiliser le répertoire de travail; vous souhaitez utiliser un répertoire relatif à l'endroit où l'application Web est situé (qui peut être récupéré à partir HttpRequest.ApplicationPath
HttpRequest request = HttpContext.Current.Request;
// get the physical path to the web application
string pathToApp = request.MapPath(request.ApplicationPath);
string usersPath = System.IO.Path.Combine(pathToApp, "Users");
Mise à jour
Comme VincayC rappelle,. développement asp.net n'est pas mon point fort;) le code ci-dessus est essentiellement équivalent de ce (beaucoup plus simple) de code:
string usersPath = HttpRequest.Current.Request.MapPath("~/Users");
Si ce code apparaît dans le code-behind d'une page que vous pouvez probablement réduire ainsi HttpContext.Current
, depuis que la page a un Request
propriété.
Cela a résolu le problème que j'ai, mais les téléchargements ne sont toujours pas téléchargés à partir du bon endroit, le programme veut toujours obtenir les fichiers de "C: \ Program Files (x86) \ Fichiers communs \ Microsoft shared \ devserver \ 10.0 \ » répertoire est ici le code que je utilise
--Code pour alimenter le checkbox--
HttpRequest request = HttpContext.Current.Request;
// get the physical path to the web application
string appPath = request.MapPath(request.ApplicationPath);
string directory = System.IO.Path.Combine(appPath, "DownloadLibrary/");
// Get the list of files into the CheckBoxList
var dirInfo = new DirectoryInfo(directory);
cblFiles.DataSource = dirInfo.GetFiles();
cblFiles.DataBind();
--Présentation Bouton Code--
// Tell the browser we're sending a ZIP file!
var downloadFileName = string.Format("Items-{0}.zip", DateTime.Now.ToString("yyyy-MM-dd-HH_mm_ss"));
Response.ContentType = "application/zip";
Response.AddHeader("Content-Disposition", "filename=" + downloadFileName);
// Zip the contents of the selected files
using (var zip = new ZipFile())
{
// Add the password protection, if specified
/*if (!string.IsNullOrEmpty(txtZIPPassword.Text))
{
zip.Password = txtZIPPassword.Text;
// 'This encryption is weak! Please see http://cheeso.members.winisp.net/DotNetZipHelp/html/24077057-63cb-ac7e-6be5-697fe9ce37d6.htm for more details
zip.Encryption = EncryptionAlgorithm.WinZipAes128;
}*/
// Construct the contents of the README.txt file that will be included in this ZIP
var readMeMessage = string.Format("Your ZIP file {0} contains the following files:{1}{1}", downloadFileName, Environment.NewLine);
// Add the checked files to the ZIP
foreach (ListItem li in cblFiles.Items)
if (li.Selected)
{
// Record the file that was included in readMeMessage
readMeMessage += string.Concat("\t* ", li.Text, Environment.NewLine);
// Now add the file to the ZIP (use a value of "" as the second parameter to put the files in the "root" folder)
zip.AddFile(li.Value, "Your Files");
}
// Add the README.txt file to the ZIP
//zip.AddEntry("README.txt", readMeMessage, Encoding.ASCII);
// Send the contents of the ZIP back to the output stream
zip.Save(Response.OutputStream);</pre></code>
Je Je ne sais pas comment faire pour que les téléchargements pointent vers le répertoire de mon application, J'ai essayé tout ce que je pouvais penser.
- 1. visual studio 2010 travail d'expiration CTP autour
- 2. travail Visual Studio 2010 RC IntelliSense doesnt
- 3. Comment obtenir du travail Microsoft Visual Studio 2010 et Qt Visual Studio Add-in?
- 4. visual studio 2010 architecte
- 5. Visual Studio 2010 - Datagridview
- 6. Visual Studio 2010 WPF
- 7. Visual Studio 2010 - RemovePreviousVersions
- 8. Débogueur Visual Studio 2010
- 9. HWnd de Visual Studio 2010
- 10. Installation de Visual Studio 2010
- 11. Visual Studio 2010 UML Ressources
- 12. Répertoire bin de variables Visual Studio
- 13. Contrôle de source Visual Studio: où placer le répertoire de travail?
- 14. Visual COBOL pour 2010 Visual Studio
- 15. visual studio 2010 problème d'installation
- 16. Site WebSpark & Visual Studio 2010
- 17. Visual Studio 2010 debug minidump
- 18. chemin d'installation Visual Studio 2010
- 19. Visual Studio 2010 IDE question
- 20. Visual Studio 2010 Architecture outillage
- 21. snprintf et Visual Studio 2010
- 22. Visual Studio Ctrl-Backspace 2010
- 23. AJAX pour Visual Studio 2010
- 24. Visual Studio 2010 (Argument Exception)
- 25. Debugger.Break sur Visual Studio 2010
- 26. Visual Studio 2010 Team Explorer
- 27. Patches Visual Studio 2010 [Fix]
- 28. Visual Studio 2010 Migration Problème
- 29. sdl setup visual studio 2010
- 30. Visual Studio 2010 Inconvénients Intellisense
Je pense que vous pourriez vouloir physiquement plutôt que psychiquement, ce qui serait une chose particulièrement difficile à faire ... – Paddy