2013-07-04 1 views
0

Я пытаюсь скопировать файл в другой каталог, но я получаю эту ошибкуНе удалось найти часть пути во время File.Copy

System.IO.DirectoryNotFoundException: Не удалось найти часть из путь 'C: \ Documents and Настройки \ (мое имя пользователя) \ Рабочий стол \ Источник_Folder \ File_1.xlsx'.

Но File_1.xlsx существует в папке Source_Folder, которая существует на моем рабочем столе. Так почему я получаю эту ошибку?

Вот мой код

Dim path_orig As String = "C:\Documents and Settings\(my username)\Desktop\Source_Folder\" 
    Dim oldFile As String = System.IO.Path.Combine(path_orig, filename) 
    Dim path_new As String = Server.MapPath("~") & "\Destination_Folder\" 
    Dim newFile As String = System.IO.Path.Combine(path_new, filename) 
    File.Copy(oldFile, newFile, True) 

* имя файла является переменной, которая в данном случае является "File_1.xlsx"

ответ

2

Не жесткий код Documents and Settings. Это изменится ОС. Используйте вместо этого:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Source_Folder") 

Кроме того, если вы используете это веб-приложение, вы, вероятно, работает с проблемами разрешений. Измените место хранения файлов и/или измените пользователя, на котором запущен пул приложений, и/или предоставите права пользователя пула приложений в папке.

+0

Привет, спасибо. Я сделал то, что вы сказали, но я получаю эту ошибку сейчас 'Не удалось найти часть пути 'C: \ Users \ (мое имя пользователя) \ Desktop \ Source_Folder \ File_1.xlsx'.' – Artemis

+0

@Artemis, используйте Process Monitor чтобы увидеть, какая ошибка создается внутри. Если это нарушение прав доступа, это скажет вам, что пользователь пытается получить к нему доступ. http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx –