Содержание
- Месторасположения папок Temp в Windows 10
- Местонахождение директорий Temp
- Способы очистки папки Temp в Windows
- Как изменить расположение папки Temp (хранилище временных файлов) в Windows 10, 8.1, 8, 7, Vista
- Где в Windows 10 находиться папка Temp?
- Как установить Windows 10
- Папка Temp в Windows
- Папка Temp в Windows
Месторасположения папок Temp в Windows 10
Почти во всех операционных системах существуют каталоги для хранения временных файлов, создаваемых программами при выполнении установки, переустановки программного обеспечения либо дополнительных действий. Как правило, по окончании надобности, Windows сама удаляет все созданные временные файлы из папки Temp и чаще всего это происходит во время перезагрузки компьютера. Бывает, что по каким-то причинам, описываемые директории не были освобождены, в таком случае лучше всего воспользоваться программой для очистки кэша, также, утилиту можно запускать для профилактики где-то раз в неделю. О том, как очистить папку Temp в Windows 10 и более ранних версиях, вручную, читайте далее.
Последствия не удалённых временных файлов, находящихся в большом количестве, могут быть критичны, а именно, занимается много места на жёстком диске, программы, обращающиеся к таким документам, начинают путаться в конце концов всё это влияет на скорость работы Windows, а также, её загрузку. Не каждый пользователь знает, где папка Temp находится в операционной системе и как до неё добраться. Далее будет приведена инструкция, помогающая это сделать используя несколько путей.
Местонахождение директорий Temp
Существует четыре директории Temp для хранения записей кэша, которыми Windows пользуется чаще всего;
- C:UsersИмя пользователяAppDataLocalTemp ;
- C:UsersAll UsersTEMP ;
- C:UsersDefaultAppDataLocalTemp ;
- C:WindowsTemp.
Соответственно, там, где «имя пользователя» нужно вставить наименование папки пользователя. Последняя строка списка ( C:WindowsTemp ) это – расположение директории для хранения кэша, но оно относится к системе и поэтому лазить туда без особой надобности не стоит.
Приведу небольшой пример из собственного опыта, когда может быть очищена системная папка Temp в Windows 10 и ниже. Как-то, ко мне обратился один человек с просьбой проверить операционную систему на неполадки. У него начались проблемы с инетом, а в службе поддержки сказали, что они выполнили проверку интернета и всё в норме. В общем, оказалось, что у него просто напрочь была забита ОС разным мусором и требовалась глобальная очистка системы от всего этого хлама. Вот, в том случае я и очистил системную папку для временных файлов.
Для удобства людей, работающих с ОС на профессиональном уровне, то есть программистов, системных администраторов и тому подобных были созданы специальные переменные, набрав которые сразу можно оказаться в директории Temp у Windows. Способ будет описан ниже, сейчас лишь скажу, что это можно сделать с помощью системной утилиты «Выполнить». Сами значения, следующие:
- %APPDATA% – равносильна C:UsersИмя пользователяAppDataRoaming.
- %TEMP% или %TMP% – будет равна C:UsersИмя пользователяAppDataLocalTemp.
- %SystemRoot%Temp или просто TEMP либо TMP – подойдут к пути C:WindowsTemp.
- APPDATA – откроет такую директорию C:UsersИмя пользователяAppData.
Способы очистки папки Temp в Windows
Чтобы освободить данные директории можно воспользоваться двумя методами. Первый – это вручную перейти по требуемому пути, описанным в первом списке через проводник. Второй, более быстрый и как показывает практика удобный, заключается он в использовании утилиты «Выполнить» упомянутой выше. Также, с помощью последнего можно воспользоваться вторым списком.
Для этого, следует кликнуть на значке «Пуск» рабочего стола правой кнопкой мышки и в появившемся меню выбрать строку «Выполнить». Ещё, для вызова данной программы можно воспользоваться горячими клавишами «Win+R». Затем в поле утилиты вбейте путь, описанный в первом списке, заведомо заменив имя пользователя на актуальное наименование. В конце следует нажать на «ENTER» или кнопку «OK», расположенную в окне утилиты справа внизу. После того как окажитесь в нужной директории, можете выполнить удаление обычным способом, например, используя комбинации клавиш Shift осуществляется удаление минуя корзину, а ещё, много разных трюков.
Если, у вас появятся вопросы, то их всегда можно задать в комментариях к статье. Также, со страницы «Контакты» вы сможете заполнить и послать мне форму.
К этой статье нет коментариев. Вы можете быть первым
Как изменить расположение папки Temp (хранилище временных файлов) в Windows 10, 8.1, 8, 7, Vista
Товарищи, добрый день. Пока что, на начальном этапе заполнения сайта, я хочу максимально расписать статьи, которые могут понадобится новичкам. Хотя в Windows место расположение папки Temp в не самом простом месте, поэтому эта статья подойдет гораздо большем количеству людей.
Итак, чтобы изменить расположение папки, нужно для начала её создать. Поэтому выбираем новое расположение и создаем в ней папку, я из соображений максимально короткого пути создам папку в корне диска C с именем Temp.
Копируем путь до папки, у меня он будет выглядеть вот так: C:Temp и открываем свойства системы, в современных операционных системах жмем правой клавишей по углу «Пуск» и выбираем «Система», в семерка и висте, открываем Пуск, жмем правой клавишей по кнопке «Компьютер» и выбираем свойства.
Жмем по ссылке «Дополнительные параметры системы».
На вкладке «Дополнительно» в самом низу есть кнопка «Переменные среды», жмем по ней.
В верхней части окна доступны переменные среды. После установки некоторых программ, у вас их может быть больше, чем на скриншоте ниже. Нас интересуют только TEMP и TMP. Выбираем их по очереди и жмем «Изменить».
Вставляем в нижнее поле путь, который мы скопировали при создании новой папки для временных файлов. И жмем ОК.
После изменения обеих переменных перезапускаем компьютер.
Не забудьте удалить все файлы из старого расположения, для того чтобы в него попасть, откройте окно проводника и вставьте в адресную строку:
%userprofile%appdatalocaltemp
И нажмите Enter.
Вроде всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа или подписавшись на группу во Вконтакте и канал YouTube.
Спасибо за внимание
Где в Windows 10 находиться папка Temp?
Папка Temp в Windows 10 предназначена для хранения временных файлов, которые необходимы для работы системы или какого-то приложения. К сожалению, содержимое этой папки не всегда очищается автоматически после выполнения определенного задания. Поэтому, данную папку пользователи часто очищают вручную. Однако, для того, чтобы удалить ненужные файлы из этой папки, нужно знать, как найти папку Темп в Виндовс 10.
Папок Temp в Windows 10 несколько. Все они хранятся в различных местах, а именно:
- С:Temp;
- C:WindowsTemp;
- C:UsersВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯAppDataLocalTemp.
Чтобы попасть в эти папки, можно вручную пройти по указанных адресах или выполнить несколько несложных действий.
Способ №1. С помощью строки Выполнить
- Откроется папка с временными файлами.
Способ №2. С помощью адресной строки Проводника
Для того, чтобы попасть в папку Temp в Windows 10, стоит открыть Проводник и в адресную строку ввести «%USERPROFILE%AppDataLocalTemp» или «%TEMP%» (без кавычек).
О том, где находится папка Temp в Windows 10, вы узнали. Теперь можно её очистить. Для этого стоит воспользоваться следующими рекомендациями.
Способ №1. Стандартная очистка Temp
- Открываем Проводник. Нажимаем правой кнопкой мыши на диске С и выбираем «Свойства». Откроется небольшое окно. Нажимаем «Очистка диска».
- Ставим отметку возле пункта «Временные файлы» и жмём «Очистить».
- Ожидаем завершение очистки папки.
Способ №2. С помощью .bat файла
Чтобы создать .bat файл, стоит выполнить следующее:
- Жмём «Пуск», выбираем «Блокнот».
- В «Блокнот» вставляем строчку «rd %temp% /s /q md %temp%».
- Сохраняем файл как «%appdata%microsoftwindowsstart menuprogramsstartupcleantemp.bat». Таким образом, вы создаете пакетный файл, cleantemp.bat, в подменю Startup вашего Меню «Пуск». Созданный bat-файл будет загружаться автоматически.
Способ №3. С помощью Планировщика заданий
- Запускаем Планировщик заданий. Для этого нужно перейти в «Панель управления», «Администрирования» и выбрать «Планировщик заданий».
- Появится новое окно. Выбираем «Создать простую задачу». Задаем любое название задачи, а в действиях указываем «forfiles.exe /p «%TEMP%» /s /m * /d -3 /c «cmd /c del /F /Q /A @file»» и «forfiles.exe /p «%TEMP%» /s /m * /d -3 /c «cmd /c rd /S /Q @file»».
- Задаем время выполнения задачи. Папка Темп будет очищаться автоматически.
Важно отметить, что два последних способа подходят для очистки папки с временными файлами только одного пользователя. Если на вашем ПК есть несколько профилей, то очистку нужно провести для каждого профиля отдельно.
Чтобы каждый раз не переходить по адресу: C:UsersИМЯ_ПОЛЬЗОВАТЕЛЯAppDataLocalTemp, папку с временными файлами можно перенести в каталог верхнего уровня, например в папку С:Temp. Для этого выполняем следующее:
- Вызываем свойства системы. Откроется новое окно. В меню слева выбираем «Дополнительные параметры системы».
- Откроется новое окно. Переходим во вкладку «Дополнительно» и нажимаем на кнопку «Переменные среды».
- Откроется новое окно. В нем можно увидеть две переменные: TEMP и TMP. Для обеих переменных нажимаем «Изменить» и вводим новое значение переменной: «C:Temp».
После выполнения вышеуказанных действий расположение папки с временными файлами измениться.
Как установить Windows 10
- Просмотров: 307 027
- Автор: admin
- Дата: 5-11-2011
Папка Temp в Windows
Папка Temp в Windows сильно может замедлить быстродействие системы, в сети кто что говорит и очень трудно во всех мнениях разобраться, для чего вообще эти временные файлы нужны? Если всё же папку temp удалять нужно, то как данный процесс автоматизировать? Честно говоря привык брать информацию из книг, но вот с этим вопросом получилось затруднение, пришлось обратится к вашему интернету и первым попались вы!
Папка Temp в Windows
- C:WindowsTemp
- C:UsersИмя пользователяAppDataLocalTemp , в моём случае пользователь ALEX, путь до папки выглядит следующим образом. C:UsersALEXAppDataLocalTemp, как видно на скришноте. За день работы моя папка накопила 149 Мб, заходим в нашу папку Temp и удаляем временные файлы. Если какой-либо файл находится в работе, удалить его не получится, но это не страшно.
- C:UsersВсе п ользователи TEMP
- C:UsersAll UsersTEMP
- C:UsersDefaultAppDataLocalTemp
Возьмём первую папку C:WindowsTemp , за день работы на компьютере она накопила всего 33,7 Мб, хотя за неделю она может накопить несколько гигабайт, удалим все файлы. Случаев, когда папка Temp в Windows накапливала несколько десятков гигабайт на компьютерах пользователей у меня на памяти немного.
Так же вы можете удалить временные файлы, используемые при посещении разнообразных страниц в интернете, с помощью штатной программы Windows Очистка диска. Пуск и набираем Очистка диска и Enter, выбираем диск С, заодно удалим и другие временные файлы.
Автоматизируем процесс очистки папки Temp в Windows, создаём командный файл сценария. При возникновении трудностей, можете перестраховаться и создать точку восстановления. Пуск, щёлкаем правой мышкой на значке Мой компьютер -> Дополнительные параметры -> Переменные среды .
В данном окне нам нужно изменить Значение переменных TEMP и TMP на C:WindowsTemp . Выделяем переменную TEMP и жмём Изменить .
На чтение 4 мин. Просмотров 4.2k. Опубликовано 03.09.2019
Как обычно, в основном для новых пользователей, каждый день возникает много сообщений об ошибках и уведомлений, особенно в Windows 10. Это конкретное исправление связано с тем, чтобы помочь вам устранить ошибку, возникшую при попытке создать временный каталог в Windows 10.
Ошибка при попытке создать временный каталог означает, что существует проблема с разрешениями вашей учетной записи пользователя. Эта ошибка обычно отображается с сообщением – невозможно выполнить файлы во временном каталоге.
Эта проблема обычно возникает, когда программное решение устанавливается через исполняемый файл. Когда отображается сообщение об ошибке, вам просто нужно закрыть его, но это не позволит вам продолжить установку. Эта ошибка может возникать в Windows 7, 8 и 10.
Это сообщение об ошибке означает, что ваша система была настроена на блокировку установки. Не нужно паниковать, потому что это только ошибка конфигурации, а не серьезная ошибка. Тем не менее, чтобы вы могли продолжить процесс установки, есть несколько вещей, которые вы можете сделать, чтобы исправить эту ошибку. Ниже приведено несколько методов, которые можно использовать для удаления сообщения об ошибке.
Содержание
- Что делать, если вы не можете создать временный каталог на ПК
- Решение 1. Выберите Запуск от имени администратора.
- Решение 2. Создайте новую папку Temp и измените переменные
- Решение 3: Изменить контроль над папкой TEMP
- Решение 4. Подтвердите включение наследуемых разрешений в папку Temp
Что делать, если вы не можете создать временный каталог на ПК
Решение 1. Выберите Запуск от имени администратора.
Это должно быть очень быстрое решение для вас, если вы спешите завершить установку и у вас нет времени на более обширные решения. Как было сказано ранее, сигнал ошибки означает, что есть проблема с разрешениями.
Это можно легко обойти с помощью этих нескольких шагов:
- Ищите исполняемый файл, который вы хотите установить
-
Щелкните правой кнопкой мыши по нему и в контекстном меню выберите «Запуск от имени администратора».
Это решение должно помочь вам очистить сообщение об ошибке и без проблем установить программное обеспечение.
– СВЯЗАННО: Как открыть временные файлы Интернета в Windows 10
Решение 2. Создайте новую папку Temp и измените переменные
Создание новой папки Temp и изменение переменных – лучший вариант, если сигнал ошибки ясно говорит о наличии проблемы с временным каталогом. Следуйте этим шагам внимательно и уберите ошибку с вашего пути:
- Введите диск C: и создайте новую папку, переименуйте ее в Temp (переключите C: с диска, на котором установлена ваша ОС)
- Нажмите правой кнопкой мыши на Этот компьютер и выберите Свойства в контексте меню.
-
С левой стороны вы увидите ссылку Дополнительные настройки , нажмите на нее
-
Нажмите на вкладку “Дополнительно” в окне и выберите Переменные среды.
- Дважды щелкните TMP в пользовательских переменных
- Значение, которое вы увидите, должно быть % USERPROFILE% AppDataLocalTemp . Измените это на C: Temp. Затем закройте окно, нажав ОК.
В конце концов, попытайтесь установить программу, она должна работать без проблем.
Решение 3: Изменить контроль над папкой TEMP
-
На диске, на котором установлена ваша ОС, введите папку вашего пользователя и найдите папку AppData, в которой вы найдете локальную папку, если ваша ОС установлена в разделе C: и вашим именем пользователя будет User, также адрес в проводнике должно быть указано « C: UsersUserAppDataLocal »
- Найдите папку Temp внутри, щелкните правой кнопкой мыши и выберите в меню свойства.
- В окне свойств нажмите Безопасность .
- В окне безопасности нажмите Все .
- Нажмите «Изменить» и убедитесь, что выбрано все поле «Полный доступ», затем нажмите «ОК» для сохранения.
Это должно дать вам полный доступ к папке Temp и решить проблему с ошибкой 5.
– СВЯЗАННО: Как удалить временные файлы с помощью Очистки диска в Windows 10, 8, 7
Решение 4. Подтвердите включение наследуемых разрешений в папку Temp
Как и в предыдущем решении, выполните следующие действия:
- На диске, на котором установлена ваша ОС, введите папку вашего пользователя и найдите папку AppData, в которой вы найдете локальную папку, если ваша ОС установлена в разделе C: и вашим именем пользователя будет User, также адрес в проводнике должно быть указано «C: UsersUserAppDataLocal»
- Найдите папку Temp внутри, щелкните правой кнопкой мыши и выберите в меню свойства.
- В окне свойств нажмите Безопасность .
-
Нажмите «Дополнительно» для просмотра разрешений.
- В разрешениях должны быть СИСТЕМА, Администратор и Пользователь. Все они должны иметь полный контроль и наследоваться от C: UsersUser
- Найдите «Включить наследуемые разрешения» из родительского выбора этого объекта, нажмите «Продолжить», нажмите «Применить» и затем нажмите «ОК», чтобы сохранить настройку.
К настоящему времени у вас уже должен быть доступ для записи в каталог, который мгновенно исправит эту ошибку.
Обработка разрешений Windows может быть очень сложной для человека, который не знает о нем много. Правильная настройка разрешений поможет вам не допустить серьезного повреждения ОС.
Несмотря на это, эти предложенные решения при правильном использовании позволят вам исправить ошибку невозможности создания временного каталога, встречающегося в Windows 10.
What’s the best way to get a temp directory name in Windows? I see that I can use GetTempPath
and GetTempFileName
to create a temporary file, but is there any equivalent to the Linux / BSD mkdtemp
function for creating a temporary directory?
Charles
50.7k13 gold badges103 silver badges142 bronze badges
asked Nov 10, 2008 at 16:50
Josh KelleyJosh Kelley
53.9k19 gold badges146 silver badges238 bronze badges
3
No, there is no equivalent to mkdtemp. The best option is to use a combination of GetTempPath and GetRandomFileName.
You would need code similar to this:
public string GetTemporaryDirectory()
{
string tempDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
Directory.CreateDirectory(tempDirectory);
return tempDirectory;
}
MHN
1032 silver badges7 bronze badges
answered Nov 10, 2008 at 16:55
Scott DormanScott Dorman
41.9k12 gold badges77 silver badges109 bronze badges
12
I hack Path.GetTempFileName()
to give me a valid, pseudo-random filepath on disk, then delete the file, and create a directory with the same file path.
This avoids the need for checking if the filepath is available in a while or loop, per Chris’ comment on Scott Dorman’s answer.
public string GetTemporaryDirectory()
{
string tempFolder = Path.GetTempFileName();
File.Delete(tempFolder);
Directory.CreateDirectory(tempFolder);
return tempFolder;
}
If you truly need a cryptographically secure random name, you may want to adapt Scott’s answer to use a while or do loop to keep trying to create a path on disk.
answered Dec 7, 2013 at 20:01
Steve JansenSteve Jansen
9,3282 gold badges29 silver badges34 bronze badges
1
I like to use GetTempPath(), a GUID-creation function like CoCreateGuid(), and CreateDirectory().
A GUID is designed to have a high probability of uniqueness, and it’s also highly improbable that someone would manually create a directory with the same form as a GUID (and if they do then CreateDirectory() will fail indicating its existence.)
answered Aug 6, 2010 at 4:59
I usually use this:
/// <summary>
/// Creates the unique temporary directory.
/// </summary>
/// <returns>
/// Directory path.
/// </returns>
public string CreateUniqueTempDirectory()
{
var uniqueTempDir = Path.GetFullPath(Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()));
Directory.CreateDirectory(uniqueTempDir);
return uniqueTempDir;
}
If you want to be absolutely sure that this directory name will not exists in temp path then you need to check if this unique directory name exists and try to create other one if it really exists.
But this GUID-based implementation is sufficient. I have no experience with any problem in this case. Some MS applications uses GUID based temp directories too.
answered Sep 2, 2016 at 7:25
Jan HlavsaJan Hlavsa
711 silver badge4 bronze badges
I used some of the answers and implemented GetTmpDirectory
method this way.
public string GetTmpDirectory()
{
string tmpDirectory;
do
{
tmpDirectory = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(Path.GetRandomFileName()));
} while (Directory.Exists(tmpDirectory));
Directory.CreateDirectory(tmpDirectory);
return tmpDirectory;
}
Dharman♦
29.3k21 gold badges79 silver badges131 bronze badges
answered Dec 14, 2020 at 14:24
parsa2820parsa2820
5004 silver badges12 bronze badges
@Chris. I too was obsessed with the remote risk that a temporary directory might already exist. The discussions about random and cryptographically strong don’t completely satisfy me either.
My approach builds on the fundamental fact that the O/S must not allow 2 calls to create a file to both succeed. It is a little surprising that .NET designers chose to hide the Win32 API functionality for directories, which makes this much easier, because it does return an error when you attempt to create a directory for the second time. Here is what I use:
[DllImport(@"kernel32.dll", EntryPoint = "CreateDirectory", SetLastError = true, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CreateDirectoryApi
([MarshalAs(UnmanagedType.LPTStr)] string lpPathName, IntPtr lpSecurityAttributes);
/// <summary>
/// Creates the directory if it does not exist.
/// </summary>
/// <param name="directoryPath">The directory path.</param>
/// <returns>Returns false if directory already exists. Exceptions for any other errors</returns>
/// <exception cref="System.ComponentModel.Win32Exception"></exception>
internal static bool CreateDirectoryIfItDoesNotExist([NotNull] string directoryPath)
{
if (directoryPath == null) throw new ArgumentNullException("directoryPath");
// First ensure parent exists, since the WIN Api does not
CreateParentFolder(directoryPath);
if (!CreateDirectoryApi(directoryPath, lpSecurityAttributes: IntPtr.Zero))
{
Win32Exception lastException = new Win32Exception();
const int ERROR_ALREADY_EXISTS = 183;
if (lastException.NativeErrorCode == ERROR_ALREADY_EXISTS) return false;
throw new System.IO.IOException(
"An exception occurred while creating directory'" + directoryPath + "'".NewLine() + lastException);
}
return true;
}
You get to decide whether the «cost/risk» of unmanaged p/invoke code is worth it. Most would say it is not, but at least you now have a choice.
CreateParentFolder() is left as an exercise to the student. I use Directory.CreateDirectory(). Be careful getting the parent of a directory, since it is null when at the root.
answered Jan 10, 2016 at 22:42
Here is a somewhat more brute-force approach to resolving the collision problem for temporary directory names. It is not an infallible approach, but it reduces significantly the chances of a folder path collision.
One could potentially add other process or assembly related information to the directory name to make the collision even less likely, although making such an information visible on the temporary directory name might not be desirable. One could also mix the order with which the time-related fields are combined to make the folder names look more random. I personally prefer to leave it that way simply because it is easier for me to find them all during debugging.
string randomlyGeneratedFolderNamePart = Path.GetFileNameWithoutExtension(Path.GetRandomFileName());
string timeRelatedFolderNamePart = DateTime.Now.Year.ToString()
+ DateTime.Now.Month.ToString()
+ DateTime.Now.Day.ToString()
+ DateTime.Now.Hour.ToString()
+ DateTime.Now.Minute.ToString()
+ DateTime.Now.Second.ToString()
+ DateTime.Now.Millisecond.ToString();
string processRelatedFolderNamePart = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
string temporaryDirectoryName = Path.Combine( Path.GetTempPath()
, timeRelatedFolderNamePart
+ processRelatedFolderNamePart
+ randomlyGeneratedFolderNamePart);
answered Dec 9, 2013 at 23:48
As mentioned above, Path.GetTempPath() is one way to do it. You could also call Environment.GetEnvironmentVariable(«TEMP») if the user has a TEMP environment variable set up.
If you are planning on using the temp directory as a means of persisting data in the application, you probably should look at using IsolatedStorage as a repository for configuration/state/etc…
answered Nov 10, 2008 at 17:05
Chris RauberChris Rauber
811 gold badge1 silver badge5 bronze badges
GetTempPath is the correct way of doing it; I’m not sure what your concern about this method is. You can then use CreateDirectory to make it.
answered Nov 10, 2008 at 16:55
2
What’s the best way to get a temp directory name in Windows? I see that I can use GetTempPath
and GetTempFileName
to create a temporary file, but is there any equivalent to the Linux / BSD mkdtemp
function for creating a temporary directory?
Charles
50.7k13 gold badges103 silver badges142 bronze badges
asked Nov 10, 2008 at 16:50
Josh KelleyJosh Kelley
53.9k19 gold badges146 silver badges238 bronze badges
3
No, there is no equivalent to mkdtemp. The best option is to use a combination of GetTempPath and GetRandomFileName.
You would need code similar to this:
public string GetTemporaryDirectory()
{
string tempDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
Directory.CreateDirectory(tempDirectory);
return tempDirectory;
}
MHN
1032 silver badges7 bronze badges
answered Nov 10, 2008 at 16:55
Scott DormanScott Dorman
41.9k12 gold badges77 silver badges109 bronze badges
12
I hack Path.GetTempFileName()
to give me a valid, pseudo-random filepath on disk, then delete the file, and create a directory with the same file path.
This avoids the need for checking if the filepath is available in a while or loop, per Chris’ comment on Scott Dorman’s answer.
public string GetTemporaryDirectory()
{
string tempFolder = Path.GetTempFileName();
File.Delete(tempFolder);
Directory.CreateDirectory(tempFolder);
return tempFolder;
}
If you truly need a cryptographically secure random name, you may want to adapt Scott’s answer to use a while or do loop to keep trying to create a path on disk.
answered Dec 7, 2013 at 20:01
Steve JansenSteve Jansen
9,3282 gold badges29 silver badges34 bronze badges
1
I like to use GetTempPath(), a GUID-creation function like CoCreateGuid(), and CreateDirectory().
A GUID is designed to have a high probability of uniqueness, and it’s also highly improbable that someone would manually create a directory with the same form as a GUID (and if they do then CreateDirectory() will fail indicating its existence.)
answered Aug 6, 2010 at 4:59
I usually use this:
/// <summary>
/// Creates the unique temporary directory.
/// </summary>
/// <returns>
/// Directory path.
/// </returns>
public string CreateUniqueTempDirectory()
{
var uniqueTempDir = Path.GetFullPath(Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()));
Directory.CreateDirectory(uniqueTempDir);
return uniqueTempDir;
}
If you want to be absolutely sure that this directory name will not exists in temp path then you need to check if this unique directory name exists and try to create other one if it really exists.
But this GUID-based implementation is sufficient. I have no experience with any problem in this case. Some MS applications uses GUID based temp directories too.
answered Sep 2, 2016 at 7:25
Jan HlavsaJan Hlavsa
711 silver badge4 bronze badges
I used some of the answers and implemented GetTmpDirectory
method this way.
public string GetTmpDirectory()
{
string tmpDirectory;
do
{
tmpDirectory = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(Path.GetRandomFileName()));
} while (Directory.Exists(tmpDirectory));
Directory.CreateDirectory(tmpDirectory);
return tmpDirectory;
}
Dharman♦
29.3k21 gold badges79 silver badges131 bronze badges
answered Dec 14, 2020 at 14:24
parsa2820parsa2820
5004 silver badges12 bronze badges
@Chris. I too was obsessed with the remote risk that a temporary directory might already exist. The discussions about random and cryptographically strong don’t completely satisfy me either.
My approach builds on the fundamental fact that the O/S must not allow 2 calls to create a file to both succeed. It is a little surprising that .NET designers chose to hide the Win32 API functionality for directories, which makes this much easier, because it does return an error when you attempt to create a directory for the second time. Here is what I use:
[DllImport(@"kernel32.dll", EntryPoint = "CreateDirectory", SetLastError = true, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CreateDirectoryApi
([MarshalAs(UnmanagedType.LPTStr)] string lpPathName, IntPtr lpSecurityAttributes);
/// <summary>
/// Creates the directory if it does not exist.
/// </summary>
/// <param name="directoryPath">The directory path.</param>
/// <returns>Returns false if directory already exists. Exceptions for any other errors</returns>
/// <exception cref="System.ComponentModel.Win32Exception"></exception>
internal static bool CreateDirectoryIfItDoesNotExist([NotNull] string directoryPath)
{
if (directoryPath == null) throw new ArgumentNullException("directoryPath");
// First ensure parent exists, since the WIN Api does not
CreateParentFolder(directoryPath);
if (!CreateDirectoryApi(directoryPath, lpSecurityAttributes: IntPtr.Zero))
{
Win32Exception lastException = new Win32Exception();
const int ERROR_ALREADY_EXISTS = 183;
if (lastException.NativeErrorCode == ERROR_ALREADY_EXISTS) return false;
throw new System.IO.IOException(
"An exception occurred while creating directory'" + directoryPath + "'".NewLine() + lastException);
}
return true;
}
You get to decide whether the «cost/risk» of unmanaged p/invoke code is worth it. Most would say it is not, but at least you now have a choice.
CreateParentFolder() is left as an exercise to the student. I use Directory.CreateDirectory(). Be careful getting the parent of a directory, since it is null when at the root.
answered Jan 10, 2016 at 22:42
Here is a somewhat more brute-force approach to resolving the collision problem for temporary directory names. It is not an infallible approach, but it reduces significantly the chances of a folder path collision.
One could potentially add other process or assembly related information to the directory name to make the collision even less likely, although making such an information visible on the temporary directory name might not be desirable. One could also mix the order with which the time-related fields are combined to make the folder names look more random. I personally prefer to leave it that way simply because it is easier for me to find them all during debugging.
string randomlyGeneratedFolderNamePart = Path.GetFileNameWithoutExtension(Path.GetRandomFileName());
string timeRelatedFolderNamePart = DateTime.Now.Year.ToString()
+ DateTime.Now.Month.ToString()
+ DateTime.Now.Day.ToString()
+ DateTime.Now.Hour.ToString()
+ DateTime.Now.Minute.ToString()
+ DateTime.Now.Second.ToString()
+ DateTime.Now.Millisecond.ToString();
string processRelatedFolderNamePart = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
string temporaryDirectoryName = Path.Combine( Path.GetTempPath()
, timeRelatedFolderNamePart
+ processRelatedFolderNamePart
+ randomlyGeneratedFolderNamePart);
answered Dec 9, 2013 at 23:48
As mentioned above, Path.GetTempPath() is one way to do it. You could also call Environment.GetEnvironmentVariable(«TEMP») if the user has a TEMP environment variable set up.
If you are planning on using the temp directory as a means of persisting data in the application, you probably should look at using IsolatedStorage as a repository for configuration/state/etc…
answered Nov 10, 2008 at 17:05
Chris RauberChris Rauber
811 gold badge1 silver badge5 bronze badges
GetTempPath is the correct way of doing it; I’m not sure what your concern about this method is. You can then use CreateDirectory to make it.
answered Nov 10, 2008 at 16:55
2
Необходимы резервные копии вашей системы. Независимо от того, насколько надежны технологии, все может пойти не так, и потерять важный файл или файлы всегда непросто. Тем не менее, вам не нужно хранить каждый файл, который вы когда-либо создавали, вечно, и он не должен быть частью вашей резервной копии. Если вы регулярно создаете резервные копии папок, которые вам нужны только на время, вам следует использовать SimpleBackup для создания резервных копий временных папок в Windows 10.
Резервные копии временных папок
Скачайте и установите SimpleBackup из Github. На вкладке «Релизы» вы ничего не можете скачать, поэтому вам нужно нажать кнопку «Клонировать» или «Загрузить» в правом верхнем углу основной вкладки и загрузить все в виде заархивированного файла. Распакуйте заархивированный файл, и внутри папки bin вы найдете EXE, который нужно запустить для установки приложения.
После установки щелкните папку правой кнопкой мыши, и вы увидите два новых параметра в контекстном меню: Резервное копирование — [Simple backup]и Восстановить — [Simple backup].
Эти два варианта говорят сами за себя; Опция резервного копирования создает резервную копию, и каждый раз, когда вам нужно восстановить папку до ее резервной версии, вы используете опцию восстановления.
Приложение не имеет особого интерфейса. Вы увидите индикатор выполнения, когда создается или восстанавливается резервная копия. Вы можете отменить действие с помощью индикатора выполнения.
Резервные копии сохраняются в следующем месте вашей системы. Это временное место, поэтому сама резервная копия становится временной. THe
%AppData%Simple Backup
Поскольку резервные копии создаются на вашем локальном диске, они будут занимать там место, что, если вы создаете резервную копию большой папки, будет означать, что вам потребуется значительное свободное пространство для этого. Кроме того, это свободное пространство должно быть на вашем диске Windows, а не на других дисках, которые могут быть больше и больше подходят для резервного копирования.
Приложение должно автоматически удалять резервные копии через некоторое время, хотя в документации не указано, сколько времени до удаления резервной копии. Вы можете взять его под свой контроль и использовать команду командной строки и запланированное задание для удаления содержимого папки через определенное количество дней.
Это приложение не предназначено для долгосрочного резервного копирования. Он предназначен для рутинных задач, когда вам нужно создать файлы, которые, в конечном итоге, после завершения задачи должны быть удалены из вашей системы. Эти файлы могут не понадобиться после того, как задача будет выполнена, но пока она все еще выполняется, их резервная копия может помочь в случае, если вы случайно удалите их или измените их, и вам потребуется вернуть старую версию.
Что вы думаете об этой статье?
Временная папка: ответы на все ваши вопросы
Последнее обновление Ноя 12, 2021
Временная папка – это каталог на вашем компьютере, в котором хранятся временные файлы. Операционная система обычно временно хранит определенные файлы и удаляет их после загрузки системы или через определенные промежутки времени. Кроме того, многие приложения используют временные папки, особенно во время начальной настройки.
Временная папка: вот все, что вам нужно знать
Как работает временная папка?
Windows создает временные файлы для определенных задач. В этих файлах хранятся определенные данные до завершения задачи. Эти файлы создаются, если задаче не хватает памяти для использования или если вы работаете с большими файлами.
Часто задаваемые вопросы о временной папке
Как мне попасть в свою временную папку?
На вашем компьютере есть две основные временные папки. Одна из них используется для хранения временных данных приложения, а другая папка – для хранения временных файлов Windows.
Расположение этих папок следующее:
- C: WindowsTemp
- C: Usersyour_account_nameAppDataLocalTemp
Для быстрого доступа вы можете использовать диалоговое окно «Выполнить», например:
- Нажмите Windows Key + R, чтобы открыть диалоговое окно запуска.
- Теперь введите следующее, в зависимости от того, к какой временной папке вы хотите получить доступ, и нажмите Enter :
Вы можете удалить все в папке Temp?
Да, удалить содержимое папки Temp совершенно безопасно. Эти файлы являются временными, и после того, как ваш компьютер закончил с ними, их можно безопасно удалить.
Ускоряет ли удаление временных файлов компьютер?
Да, удаление временных файлов из папки Temp ускорит ваш компьютер и освободит драгоценное место для хранения. Имейте в виду, что улучшение производительности не будет значительным, но вы должны увидеть некоторые улучшения.
Временные файлы важны?
Временные файлы важны, поскольку они используются приложениями, работающими с большими файлами, для сохранения данных. Кроме того, временные файлы могут также содержать резервные копии файлов, над которыми вы сейчас работаете.
Источник записи: windowsreport.com
Привет, друзья. На днях что-то стал я подмечать, что моя Windows при проведении определённых операций ведёт себя туговато. Так, как в былые времена, когда она стояла у меня на HDD, а не на SSD. И тут я вспомнил, что какое-то время назад я переназначил расположение системных папок «Temp» на раздел, который находится на HDD. Я провёл очистку этих папок и вернул им их дефолтное расположение. Ну и, естественно, дела пошли значительно лучше. Вот и решил сделать небольшую заметку об этом нюансе работы с Windows. Итак, системными средствами можно сменить дефолтное расположение папок временных данных «Temp» на иное. В каких случаях это целесообразно делать? И, собственно, как это делается?
Перенос системных папок «Temp» на другой раздел или диск
Папки «Temp» Windows
Друзья, возможно, кто не в курсе, что за папки такие, о которых мы будем говорить. Это две системные папки хранения временных данных. Одна из них находится непосредственно в системном каталоге по пути:
C:WindowsTemp
Другая располагается внутри профиля каждого пользователя по пути:
C:UsersИмя_пользователяAppDataLocalTemp
Более детально узнать о том, что это за папки, какую роль в работе Windows они играют, почему их нужно периодически чистить, вы можете из статьи сайта «Папка Temp в Windows». В этой статье, в частности, описывается процесс автоматизации очистки папок «Temp» с помощью переменных сред Windows. Ниже мы также будем работать с переменными средами, но в этот раз с целью переноса папок в другие места компьютера. И прежде, естественно, поговорим, о том, зачем это делать в принципе. Что кого может не устраивать при дефолтном расположении папок «Temp»?
Зачем менять дефолтное расположение папок «Temp»
Самые распространённые случаи, когда может быть целесообразно сменить дефолтное расположение папок «Temp» — это нехватка места на диске С в условиях невозможности увеличения его объёма и оптимизация работы Windows за счёт реализации RAM-диска. В последнем случае оптимизирующий эффект достигается за счёт реализуемого средствами оперативной памяти виртуального диска, на котором чтение и запись данных происходит с многократно увеличенными скоростями по сравнению с HDD. В моём же частном случае я, наоборот, переместил папки «Temp» с производительного SSD на медленный HDD. Зачем? Это была временная надобность, когда я исследовал возможности встроенного в Windows 10 гипервизора Hyper-V, который после обновлений 2018 года обзавёлся возможностью установки виртуальных машин в едином процессе загрузки их дистрибутива с серверов Microsoft. И вот этот дистрибутив с серверов Microsoft безапелляционно загружался как временные файлы в папки «Temp». Это были большие объёмы данных, планировалось исследование возможностей по всем предлагаемым операционным системам в таком вот едином процессе создания виртуальной машины и загрузки её дистрибутива с сети. Вот тогда, собственно, и стала необходимость в переназначении месторасположения папок «Temp» на раздел винчестера-файлопомойки. Поскольку средствами Hyper-V, как я уже сказал, смена каталога загрузки дистрибутива не предусматривалась.
Как перенести папки «Temp» в другое место
Чтобы перенести папки «Temp» в другое место, прежде на этом месте необходимо создать папку с названием, соответственно, «Temp». В нашем случае местом переноса папок пусть будет диск D. На нём создаём папку «Temp».
Теперь жмём клавиши Win+R. Запускаем свойства системы:
sysdm.cpl
Переключаемся на вкладку «Дополнительно». Внизу кликаем «Переменные среды…».
В верхней части окна переменных сред находятся опции правки путей расположения папки «Temp» в составе пользовательского профиля, т.е. внутри папки «AppData». Нам нужно изменить путь в значениях переменных «TEMP» и «TMP». Кликаем первую переменную — «TEMP», жмём «Изменить».
Меняем исходное значение на путь в нашем случае на диске D — D:Temp. Жмём «Ок».
Теперь то же самое проделываем с переменной «TMP». Меняем её исходный путь на D:Temp.
Теперь все временные файлы папки «Temp» в составе пользовательского профиля будут поступать в папку «Temp» на диске D.
Далее смотрим нижнюю часть окна переменных сред. В ней мы будем править путь папки «Temp», находящейся внутри системного каталога «Windows». Точно так же, как и в предыдущем случае, кликаем каждую из сред «TEMP» и «TMP», жмём кнопку «Изменить».
И меняем исходный путь на конечный — D:Temp.
Готово.
Теперь осталось только перезагрузить Windows.
Как вернуть дефолтные значения переменных сред для папок «Temp»
Чтобы вернуть папки «Temp» на свои места – на диск С в каталоги «Windows» и «AppData», необходимо, соответственно, вернуть исходные значения переменных сред для папок «TEMP» и «TMP». Делается это точно таким же образом, как и задавались наши, пользовательские значения. Кликаем каждую из переменных сред и вводим дефолтное значение для «TEMP» и «TMP» в верхней части окна:
%USERPROFILE%AppDataLocalTemp
Для «TEMP» и «TMP» в нижней части окна:
%SystemRoot%TEMP
И перезагружаемся.