Попробуйте следующее:
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="windowNoTitle">true</item>
Обновление: Добавленный Файл. Существует проверка на комментарий (2012 19 июня)
Вот - то, что я использовал в VB.NET. По существу то же, как представлено, кроме я обычно не хотел создавать папку сразу.
преимущество для использования GetRandomFilename - то, что оно не создает файл, таким образом, Вы не должны мыться если Ваше использование названия чего-то другого, чем файл. Как использование его для имени папки.
Private Function GetTempFolder() As String
Dim folder As String = Path.Combine(Path.GetTempPath, Path.GetRandomFileName)
Do While Directory.Exists(folder) or File.Exists(folder)
folder = Path.Combine(Path.GetTempPath, Path.GetRandomFileName)
Loop
Return folder
End Function
Случайный Пример Имени файла:
C:\Documents and Settings\username\Local Settings\Temp\u3z5e0co.tvq
<час>Вот изменение с помощью Гуида для получения временного имени папки.
Private Function GetTempFolderGuid() As String
Dim folder As String = Path.Combine(Path.GetTempPath, Guid.NewGuid.ToString)
Do While Directory.Exists(folder) or File.Exists(folder)
folder = Path.Combine(Path.GetTempPath, Guid.NewGuid.ToString)
Loop
Return folder
End Function
гуид Пример:
C:\Documents and Settings\username\Local Settings\Temp\2dbc6db7-2d45-4b75-b27f-0bd492c60496
Необходимо использовать System.IO.Path.GetTempFileName()
, Создает исключительно именованный, нулевой байт временный файл на диске и возвращает полный путь того файла.
можно использовать System.IO.Path.GetDirectoryName(System.IO.Path.GetTempFileName())
для получения только временной информации папки, и создать папки там
Они создаются в папке временного файла окон, и это, рассматривают лучшую практику
Просто для уточнения:
System.IO.Path.GetTempPath()
возвраты просто путь к папке к временной папке.
System.IO.Path.GetTempFileName()
возвраты полностью определенное имя файла (включая путь) так это:
System.IO.Path.Combine(System.IO.Path.GetTempPath(), System.IO.Path.GetTempFileName())
избыточно.
Существует возможное состояние состязания когда:
GetTempFileName()
, удаление его и создание папки с тем же именем, или GetRandomFileName()
или Guid.NewGuid.ToString
для именования папки и создания папки позже С GetTempFileName()
после удаления происходит, другое приложение могло успешно создать временный файл с тем же именем. Эти CreateDirectory()
тогда перестал бы работать.
Точно так же между вызовом GetRandomFileName()
и созданием каталога другой процесс мог создать файл или каталог с тем же именем, снова приводящим к CreateDirectory()
сбой.
Для большинства приложений для временного каталога нормально перестать работать из-за состояния состязания. Это чрезвычайно редко, в конце концов. Для них могут часто игнорироваться эти гонки.
В мире сценариев оболочки Unix, создавая временные файлы и каталоги безопасным способом без гонок грандиозное предприятие. Много машин имеют несколько (враждебных) пользователей - думают, совместно использованный веб-хост - и много сценариев и приложений должен безопасно создать временные файлы и каталоги в общем/tmp каталоге. См. Безопасно Создающие Временные Файлы в Сценариях оболочки для обсуждения того, как безопасно создать временные каталоги из сценариев оболочки.
Что-то как...
using System.IO;
string path = Path.GetTempPath() + Path.GetRandomFileName();
while (Directory.Exists(path))
path = Path.GetTempPath() + Path.GetRandomFileName();
Directory.CreateDirectory(path);
Вы могли генерировать GUID для своих временных имен папок.
Пока название папки не должно быть значимым, как насчет того, чтобы использовать GUID для них?
Можно использовать GetTempFileName для создания временного файла файл , затем удалить и воссоздать этот файл как каталог вместо этого.
Примечание: ссылка не работала, скопировать/вставить от: http://msdn.microsoft.com/en-us/library/aa364991 (По сравнению с 85) .aspx
Объединенные ответы от @adam-wright и pix0r будут работать лучшее, по моему скромному мнению:
using System.IO;
string path = Path.GetTempPath() + Path.GetRandomFileName();
while (Directory.Exists(path))
path = Path.GetTempPath() + Path.GetRandomFileName();
File.Delete(path);
Directory.CreateDirectory(path);
Преимущество для использования Системы. IO.Path. GetTempFileName - то, что это будет файл в локальном пользователе (т.е. не бродящий) путь. Это точно, где Вы хотели бы его для полномочий и соображений безопасности.