> On Mar 6, 2016, at 5:28 AM, Robert Krüger <krue...@lesspain.de> wrote:
> 
> 
> 
> On Sat, Mar 5, 2016 at 3:23 PM, Michael Hall <mik3h...@gmail.com 
> <mailto:mik3h...@gmail.com>> wrote:
>> On Mar 5, 2016, at 7:15 AM, Robert Krüger <krue...@lesspain.de 
>> <mailto:krue...@lesspain.de>> wrote:
>> 
>> 
> 
> This…,
> https://stackoverflow.com/questions/9198184/setting-file-creation-timestamp-in-java
>  
> <https://stackoverflow.com/questions/9198184/setting-file-creation-timestamp-in-java>
> seems to suggest that File.setLastModified will accomplish what you wan on OS 
> Xt.
> 
> No, that's what I started with and it does what it's documented to do.


I’m assuming ‘what it’s documented to do’ means it changes something other than 
finder creation date/time. 

Maybe the stack overflow link I posted wasn’t concerned with changing Finder 
related.
These suggest using the ‘touch’ or ‘SetFile’ commands could accomplish this...
https://medium.com/@danilosapad/how-to-change-a-file-s-last-modified-and-creation-dates-on-mac-os-x-494f8f76cdf4#.y8qxzwtgg
 
<https://medium.com/@danilosapad/how-to-change-a-file-s-last-modified-and-creation-dates-on-mac-os-x-494f8f76cdf4#.y8qxzwtgg>
https://apple.stackexchange.com/questions/99536/changing-creation-date-of-a-file
 
<https://apple.stackexchange.com/questions/99536/changing-creation-date-of-a-file>
you could probably runtime exec those from java easily enough. 

Changing even from native seems like it could be a little tricky for some 
reason. At least this link suggests it might be...
https://stackoverflow.com/questions/6905503/setting-nsfilecreationdate-has-no-effect
 
<https://stackoverflow.com/questions/6905503/setting-nsfilecreationdate-has-no-effect>

My trz code does support some cocoa/NSFileManager type attributes…
https://github.com/mik3hall/trz/blob/master/src/us/hall/trz/osx/test/MacAttributesTest.java
 
<https://github.com/mik3hall/trz/blob/master/src/us/hall/trz/osx/test/MacAttributesTest.java>
shows junit tests of some of the api’s supported.
For Cocoa it has this.

        @Test
        public void testCocoa() {
                try {
                        File f = new File("build.xml");
                        Path p = f.toPath();
                        Map<String,Object> attrs = 
Files.readAttributes(p,"mac_cocoa:*");
                        assertEquals(17,attrs.size());
                        
assertFalse(((Boolean)Files.getAttribute(p,"mac_cocoa:NSFileBusy")).booleanValue());
                        
assertEquals(Files.size(p),((Long)Files.getAttribute(p,"mac_cocoa:NSFileSize")).longValue());
                        attrs = 
Files.readAttributes(p,"mac_cocoa:NSFileModificationDate,mac_cocoa:NSFilePosixPermissions");
                        assertEquals(2,attrs.size());           
                }
                catch (IOException ioex) { fail(ioex.toString()); }
        } 

Updating may not be supported. But could be added if you or anyone else want to 
use it. I didn’t want my first feedback on the code to be that someone tried it 
and something got messed up on their machine. “Hey, I tried your code and it 
turned all the files orange”. (I think I did include that possibility for 
FinderInfo though…
Files.setAttribute(p, "mac_finder:label", "orange”);
it was just kind of fun).
This would do all the native for you and allow you to do what you want in the 
nio.2 way. Assuming I can get it to work. Despite the last stack overflow post 
it doesn’t seem like it should be all that difficult.

Michael Hall




Reply via email to