Нужна временная папка для хранения и обработки файлов. Прочитал на msdn, что можно воспользоваться Path.GetTempPath(). Какие есть нюансы при таком решении? Есть ли другие варианты?
Если официальная документация говорит использовать Path.GetTempPath
, то я бы на вашем месте именно это и делал.
Вам для доступа в нормально отконфигурированной системе даны App Data (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
) для данных вашего приложения (за которые вы лично ответственны), и временный каталог (Path.GetTempPath
). Временные данные нужно, понятно, хранить во временном каталоге.
Предупреждение: если вам нужны эти данные между запусками программы, то храните их в App Data, т. к. Temp может быть почищен в любой момент. Хуже того, Temp имеет право быть почищен в процессе работы вашей программы, поэтому открывайте временный файл с эксклюзивным доступом (FileShare.Read
или вообще FileShare.None
), и не закрывайте, пока он вам всё ещё нужен. Кроме того, поскольку Temp доступен всем, я бы на всякий случай не оставлял там важную информацию наподобие паролей пользователя или номера кредитки. (Впрочем, для обеспечания безопасности нужно довольно многое.)
Если пользователь каким-то образом «запортит» временный каталог, это не ваша забота. Покажите сообщение об ошибке и прекращайте работу. Вы не можте бороться с пользователем, разрушающим свою систему: он может в конце-концов просто удалить половину файлов .NET Framework, если захочет всё сломать.
Можно использовать для этого System.IO.IsolatedStorage.IsolatedStorageFile
. При этом создается папка в C:\Users\<user>\AppData\Local\IsolatedStorage\
(если указан флаг IsolatedStorageScope.User
). Пример записи файлов на MSDN
Виртуальный выделенный сервер (VDS) становится отличным выбором
Дана кастомная реализация MD5, найденная на просторах сети
Я не знаю как написать код который будет округлять до десятков и сотенНапример у меня есть 365 и надо что бы его округляло к 370 или есть 350 и надо...
Есть класс customArrayFunctions , метод chain работает как нужно, но функции повторяются, поэтому мне нужно чтобы после вызова chain брались функции из основного...