как составить список содержимого корзины с помощью Objective-C (на Mac)

Я пытаюсь получить содержимое корзины в приложении Cocoa, и мне было интересно, является ли это особым путем или мне нужно использовать специальные функции.

Спасибо за вашу помощь,

С уважением,


person AP.    schedule 09.05.2011    source источник


Ответы (3)


«Macintosh HD>Пользователи>ваше имя пользователя>.Trash» Он скрыт для поиска, но вы можете найти его в терминале или иным образом. С этого момента это обычная папка, и вы можете выполнять с ней любые функции. Можно сделать так

NSError *error=nil;
NSString *path=[NSHomeDirectory() stringByAppendingPathComponent:@".Trash"];
NSArray *folderList=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error];
person utahwithak    schedule 09.05.2011
comment
Не кодируйте путь таким образом. Используйте 1_ - person sudo rm -rf; 09.05.2011
comment
спасибо за этот интересный комментарий. Я изучил новую функцию :) - person AP.; 09.05.2011
comment
Добавление @.Trash по-прежнему требует жесткого кодирования пути. Лучше использовать метод, который предоставил Цунео Йошиока: NSURL *trashURL = [[NSFileManager defaultManager] URLForDirectory:NSTrashDirectory inDomain:NSUserDomainMask appropriateForURL:dirURL create:NO error:&error];, или еще лучше, чтобы действительно получить все корзины для текущего пользователя: NSArray *trashURLs = [[NSFileManager defaultManager] URLsForDirectory:NSTrashDirectory inDomains:NSUserDomainMask]; - person Marco Masser; 07.11.2013

Есть несколько специальных путей для мусорных предметов.

  • У каждого пользователя есть каталог .Trash непосредственно у себя дома.
  • Каждый смонтированный том имеет в корне каталог .Trashes с подкаталогом для каждого пользователя. Это делается для того, чтобы элементы мусора на съемных дисках, такие как USB-ключи, оставались на диске.

Выше приведены детали реализации (которые остаются неизменными с версии 10.0), поэтому я не уверен, можно ли на них полагаться. Альтернативой переходу в каталоги является использование скриптового моста к Finder. Пример приведен в руководство по программированию Scripting Bridge.

person JeremyP    schedule 09.05.2011
comment
Верно ли это для версий, в которых английский язык не является предпочтительным? Мне любопытно, локализованы ли .Trash и .Trashes для языка пользователя. - person Darren Hale; 17.09.2015
comment
@DarrenHale Хороший вопрос, на который я не знаю ответа. Я предполагаю, что они, вероятно, не беспокоятся, потому что рассматриваемый каталог обычно скрыт. - person JeremyP; 18.09.2015

Вы можете использовать URLForDirectory, чтобы получить каталог Trash, связанный с файлом, домашним каталогом или внешним томом.

NSURL *trashURL = [[NSFileManager defaultManager] URLForDirectory:NSTrashDirectory inDomain:NSUserDomainMask appropriateForURL:dirURL create:NO error:&error];

Вы можете вызвать эту функцию для всех смонтированных томов, используя «mountedVolumeURLsIncludingResourceValuesForKeys».

person Tsuneo Yoshioka    schedule 27.09.2013