99% случаев, которые вы могли бы просто использовать:
sys.calls()[[1]] [[2]]
Он не будет работать для сумасшедших вызовов, где сценарий не является первым аргументом, то есть source(some args, file="myscript")
. Используйте @ hadley в этих причудливых случаях.
Ваше наблюдение
В настоящее время перемещенные файлы сохраняют свои собственные разрешения ACL от того места, где они были созданы, что не соответствует ожиданиям.
blockquote>Кажется, что ожидаемое поведение. После статьи службы поддержки Microsoft Как обрабатываются разрешения при копировании и перемещении файлов и папок .
По умолчанию объект наследует разрешения от своего родительского объекта, либо во время создания, либо когда он копируется или перемещается в родительскую папку. Единственное исключение из этого правила возникает, когда вы перемещаете объект в другую папку на том же томе. В этом случае первоначальные разрешения сохраняются .
BLOCKQUOTE>
Первый вопрос: хотите ли вы сделать его переносимым через Unix / Windows?
Поскольку каждая ОС имеет определенные атрибуты файла.
Для портативного решения (атрибуты, общие для большинства ОС):
Получите BasicFileAttributes из целевой папки, в которой вы находитесь переход к. Например:
BasicFileAttributes basicAttr = Files.readAttributes (file, BasicFileAttributes.class);
blockquote>
Установить атрибуты к каждому перемещенному файлу
Для решения для конкретной ОС вместо BasicFileAttributes можно использовать:
DosFileAttributes attrs = Files.readAttributes (file, DosFileAttributes.class);
blockquote> [1122 ]
// Для получения значений атрибутов
логическое значение isArchive = attrs.isArchive ()
логическое значение isHidden = attrs.isHidden ()
логический isReadOnly = attrs.isReadOnly ()
логический isSystem = attrs.isSystem ()
// для установки атрибутов в новом файле
Files.setAttribute (newFile, "dos: archive", isArchive);
Files.setAttribute (newFile, "dos: hidden", isHidden); [ 1117]
Files.setAttribute (newFile, "dos: readonly", isReadOnly);
Files.setAttribute (newFile, "dos: system", isSystem);
- Атрибуты PosixFile для Unix