Je suis sûr qu'il y est une commande shell qui peuvent le faire plus vite, mais ici, c'est un moyen de pur Applescript qui vous donne un contrôle total sur la mise en forme quelles sont les informations que vous voulez afficher.
property kFileList : {}
tell application "Finder"
set source_folder to choose folder with prompt "Please select directory."
my createList(source_folder)
end tell
on createList(item_list)
set the the_items to list folder item_list without invisibles
set item_list to item_list as string
repeat with i from 1 to number of items in the the_items
set the_item to item i of the the_items
set the_item to (item_list & the_item) as alias
set this_info to info for the_item
set file_name to name of this_info
set end of kFileList to file_name
if folder of this_info is true then
my createList(the_item)
end if
end repeat
end createList
Sur une note de côté, il ya aussi un certain nombre de fichier listant les applications qui peuvent le faire plus vite que Applescript.
Mise à JOUR: la suite de cette discussion, ici, est la fonction de nouveau, mais cette fois en utilisant la mise à jour de l'API. Cela pourrait probablement pourrait utiliser un peu de nettoyage, mais il fonctionne de catalogage mon Bureau a largement assez (et c'est un profond, profond dossier pour moi):
property kFileList : {}
tell application "Finder"
set source_folder to choose folder with prompt "Please select directory."
my createList(source_folder)
end tell
return kFileList
on createList(mSource_folder)
set item_list to ""
tell application "System Events"
set item_list to get the name of every disk item of mSource_folder
end tell
set item_count to (get count of items in item_list)
repeat with i from 1 to item_count
set the_properties to ""
set the_item to item i of the item_list
set the_item to ((mSource_folder & the_item) as string) as alias
tell application "System Events"
set file_info to get info for the_item
end tell
if visible of file_info is true then
set file_name to displayed name of file_info
set end of kFileList to file_name
if folder of file_info is true then
my createList(the_item)
end if
end if
end repeat
end createList
Je devez être abonné à la mauvaise listes de diffusion ou de manque un, parce que ces changements de l'API ont été adoptés et je jamais une fois entendu parler d'eux. J'ai utilisé mon premier offert méthode dans des dizaines de projets en grande partie parce que c'était le code à l'origine proposée par Apple, et l'absence totale d'erreurs à l'aide de cette (même lors de la rédaction de cet article) ne jamais déclenché un besoin pour moi de mettre à jour quoi que ce soit.
Revirement est fair-play, et toutes mes excuses pour le méchant downvote à mmcgrail, et je suis le remplaçant par un upvote. Juste pour être clair, je n'ai jamais pensé à la réponse donnée par mmcgrail était faux. C'est une grande ligne la méthode de convenance, mais celui que je suis resté loin de par mes commentaires déjà donné. Mais plutôt, il a été son vote et son contexte déclaré que j'ai pris acte avec. En fin de compte, c'est juste le code, et je pense que nous sommes tous ici pour la même raison: pour trouver une meilleure façon de faire ce que nous faisons. Il semble que j'ai maintenant quelques mises à jour de mon propre à adopter.
Acclamations
veuillez voir mon post J'ai fait un edit de mon post il écrit quelque chose comme "ne peut pas obtenir de chaque élément de disque de ..."
que c'est beaucoup plus de travail que nécessaire. Je sais que c'est un vieux post mais je tiens à vous deux pour voir comment facile ce peut être
tell application "Finder"
set file_list to entire contents of (choose folder with prompt "Please select directory.")
end tell
si vous voulez une liste de noms de fichiers, alors vous pourriez le faire
tell application "Finder"
set file_list to name of every file of entire contents of (choose folder with prompt "Please select directory.")
end tell
Grâce aux commentaires qui suivent ce post, j'ai demandé à un groupe d'experts dans les affaires à examiner cette question et d'évaluer notre réponse d'une manière impartiale et la réponse que j'ai eu était thsis
"Comment parler d'une varicelle soit de vos deux maisons? 🙂
Oui, tout le contenu est exactement ce que vous dites-mais il étouffe facilement sur
de gros dossiers, et prend une éternité (et un jour si vous êtes sur 10.6). C'est OK pour
de petites choses, comme l'extraction de tous les fichiers d'un type d'un dossier
savons ne contiennent qu'un petit nombre de fichiers.
La méthode récursive fonctionne aussi très bien-mais c'est à l'aide de la liste des "dossiers", et
le dictionnaire de cotation pour il dit que c'est obsolète, et nous ne devrions pas l'utiliser
plus."
Donc j'entends par déclarer que j'ai eu tort! ces deux solutions sont valables, mais ont "pox" ou des trous dans leurs utilisations. Mon applogies de à Philippe. Faut-il décider de modifier sa réponse (car c'est le seul moyen de changer mon vote)je serai heureux de revenir et de lui donner +1
Droit, car une énorme liste de {document fichier "FileName" du dossier "sous-dossier" le dossier "le Dossier" le dossier "nom d'utilisateur" du dossier "Utilisateurs" de la disquette de démarrage de l'application "Finder", ad nauseam} et d'avoir par la suite des processus que est d'autant plus utile que d'exiger une baisse de vote sur la mienne. qu'est-ce que là vous avez la liste et référence les éléments nécessaires que je.e alias l'élément dans la liste de fichier de votre façon de faire plus de travail que ce qui est nécessaire c'est pourquoi je vous ai donné un bas de vote je n'ai pas le donner à vous de dépit, où, comme cela semble être ce que vous faites aussi votre kFileList renvoie une liste de nom de fichiers et aucune référence à l'endroit où le fichier provient alors, que puis revenir en arrière à travers le dossier de comprendre d'où ils viennent ? C'est un "six d'un, demi-douzaine de l'autre" scénario. Par l'obtention de l'information sur le fichier de propriétés à l'avant, il est plus facile de faire une liste personnalisée à droite de la porte, par opposition à la liste des alias, puis en tirant information désirée après le fait. Moins de lignes de code n'est pas toujours la meilleure réponse, ni est-il le pire des réponse. Merci de réfléchir à deux fois avant de downvoting. downvote: Oui. Oui, je l'ai fait. La vôtre a été aussi inutile que le mien par mon point ci-dessus. J'ai rarement downvote (six fois dans l'année, y compris ici, alors que vous semblez être sur un rouleau de 5 à moins de 3 mois). Je ne downvote pour vraiment flagrantes erreurs dans les réponses, mais vous semblez avoir pris sur moi, un grincheux de la journée. La prochaine fois, encore une fois, réfléchir à deux fois avant de downvoting et sacrifier des points précieux juste pour le plaisir de "vouloir nous montrer à la fois comment facile c'est". Si vous n'aimez tout simplement pas une réponse, puis il suffit de le laisser seul.
Wow c'est assez tard, mais j'ai vérifié et il fonctionne.
tell application "Finder" to set folder_root to (choose folder with prompt "Please select directory.")
set fl to {}
dump_folder(folder_root)
on dump_folder(f)
global fl
tell application "System Events" to set end of fl to (get the POSIX path of f)
tell application "Finder" to set nfl to (the items of the contents of f)
repeat with nf in nfl
dump_folder(nf as alias)
end repeat
end dump_folder
fl
Je suis sûr qu'il y est une commande shell qui peuvent le faire plus vite, mais ici, c'est un moyen de pur Applescript qui vous donne un contrôle total sur la mise en forme quelles sont les informations que vous voulez afficher.
Sur une note de côté, il ya aussi un certain nombre de fichier listant les applications qui peuvent le faire plus vite que Applescript.
Mise à JOUR: la suite de cette discussion, ici, est la fonction de nouveau, mais cette fois en utilisant la mise à jour de l'API. Cela pourrait probablement pourrait utiliser un peu de nettoyage, mais il fonctionne de catalogage mon Bureau a largement assez (et c'est un profond, profond dossier pour moi):
Je devez être abonné à la mauvaise listes de diffusion ou de manque un, parce que ces changements de l'API ont été adoptés et je jamais une fois entendu parler d'eux. J'ai utilisé mon premier offert méthode dans des dizaines de projets en grande partie parce que c'était le code à l'origine proposée par Apple, et l'absence totale d'erreurs à l'aide de cette (même lors de la rédaction de cet article) ne jamais déclenché un besoin pour moi de mettre à jour quoi que ce soit.
Revirement est fair-play, et toutes mes excuses pour le méchant downvote à mmcgrail, et je suis le remplaçant par un upvote. Juste pour être clair, je n'ai jamais pensé à la réponse donnée par mmcgrail était faux. C'est une grande ligne la méthode de convenance, mais celui que je suis resté loin de par mes commentaires déjà donné. Mais plutôt, il a été son vote et son contexte déclaré que j'ai pris acte avec. En fin de compte, c'est juste le code, et je pense que nous sommes tous ici pour la même raison: pour trouver une meilleure façon de faire ce que nous faisons. Il semble que j'ai maintenant quelques mises à jour de mon propre à adopter.
Acclamations
J'ai fait un edit de mon post
il écrit quelque chose comme "ne peut pas obtenir de chaque élément de disque de ..."
OriginalL'auteur Philip Regan
que c'est beaucoup plus de travail que nécessaire. Je sais que c'est un vieux post mais je tiens à vous deux pour voir comment facile ce peut être
si vous voulez une liste de noms de fichiers, alors vous pourriez le faire
Grâce aux commentaires qui suivent ce post, j'ai demandé à un groupe d'experts dans les affaires à examiner cette question et d'évaluer notre réponse d'une manière impartiale et la réponse que j'ai eu était thsis
"Comment parler d'une varicelle soit de vos deux maisons? 🙂
Oui, tout le contenu est exactement ce que vous dites-mais il étouffe facilement sur
de gros dossiers, et prend une éternité (et un jour si vous êtes sur 10.6). C'est OK pour
de petites choses, comme l'extraction de tous les fichiers d'un type d'un dossier
savons ne contiennent qu'un petit nombre de fichiers.
La méthode récursive fonctionne aussi très bien-mais c'est à l'aide de la liste des "dossiers", et
le dictionnaire de cotation pour il dit que c'est obsolète, et nous ne devrions pas l'utiliser
plus."
Donc j'entends par déclarer que j'ai eu tort! ces deux solutions sont valables, mais ont "pox" ou des trous dans leurs utilisations. Mon applogies de à Philippe. Faut-il décider de modifier sa réponse (car c'est le seul moyen de changer mon vote)je serai heureux de revenir et de lui donner +1
qu'est-ce que là vous avez la liste et référence les éléments nécessaires que je.e alias l'élément dans la liste de fichier de votre façon de faire plus de travail que ce qui est nécessaire c'est pourquoi je vous ai donné un bas de vote je n'ai pas le donner à vous de dépit, où, comme cela semble être ce que vous faites
aussi votre kFileList renvoie une liste de nom de fichiers et aucune référence à l'endroit où le fichier provient alors, que puis revenir en arrière à travers le dossier de comprendre d'où ils viennent ?
C'est un "six d'un, demi-douzaine de l'autre" scénario. Par l'obtention de l'information sur le fichier de propriétés à l'avant, il est plus facile de faire une liste personnalisée à droite de la porte, par opposition à la liste des alias, puis en tirant information désirée après le fait. Moins de lignes de code n'est pas toujours la meilleure réponse, ni est-il le pire des réponse. Merci de réfléchir à deux fois avant de downvoting.
downvote: Oui. Oui, je l'ai fait. La vôtre a été aussi inutile que le mien par mon point ci-dessus. J'ai rarement downvote (six fois dans l'année, y compris ici, alors que vous semblez être sur un rouleau de 5 à moins de 3 mois). Je ne downvote pour vraiment flagrantes erreurs dans les réponses, mais vous semblez avoir pris sur moi, un grincheux de la journée. La prochaine fois, encore une fois, réfléchir à deux fois avant de downvoting et sacrifier des points précieux juste pour le plaisir de "vouloir nous montrer à la fois comment facile c'est". Si vous n'aimez tout simplement pas une réponse, puis il suffit de le laisser seul.
OriginalL'auteur mcgrailm
Wow c'est assez tard, mais j'ai vérifié et il fonctionne.
OriginalL'auteur 梁國淦