8 Replies Latest reply on Feb 25, 2018 5:29 AM by ia89823338

    Create a txt file in Extendscript

    ia89823338 Level 1

      Hey!

      im trying to create a script that creates a txt file but i can't do that...

       

      that is the function code:

       

      var scriptFolderPath = File($.fileName).path; // the URI of the folder that contains the script file  
      var TimerFolderPath = scriptFolderPath + encodeURI("/ProjectTimers_sources"); // the URI of the folder for your script resources  
      
      StartButton.onClick = function(){ 
      
      
      var JFile = new File(TimerFolderPath + encodeURI("/File.txt"));
      var content="That is a text file";
      File.write(content);
      
      
      alert("File created!");
      }
      

      and it doesn't creates any file...

        • 1. Re: Create a txt file in Extendscript
          Mathias Moehl Adobe Community Professional

          JFile.write(content); 

          instead of

          File.write(content); 

          ?

          • 2. Re: Create a txt file in Extendscript
            ia89823338 Level 1

            haha...

            didn't see that.

            but, the file is not being created yet...

            • 3. Re: Create a txt file in Extendscript
              Tomas Sinkunas Adobe Community Professional

              Give this one a shot.

              First you better check if you have permissions to Write Files and Access Network.

              Next, you probably need to open fine before writing to it.

              var scriptFolderPath = File($.fileName).path; // the URI of the folder that contains the script file    
              var TimerFolderPath = scriptFolderPath + encodeURI("/ProjectTimers_sources"); // the URI of the folder for your script resources    
              
              
              StartButton.onClick = function() {
                  var JFile = new File(TimerFolderPath + encodeURI("/File.txt"));
                  var content = "That is a text file";
                  
                  if (!canWriteFiles()) return null;
                  writeFile(JFile, content);
                  
                  // File.write(content);
              
              
              
              
                  alert("File created!");
              };
              
              
              function writeFile(fileObj, fileContent, encoding) {
                  encoding = encoding || "utf-8";
                  fileObj = (fileObj instanceof File) ? fileObj : new File(fileObj);
              
              
                  var parentFolder = fileObj.parent;
                  if (!parentFolder.exists && !parentFolder.create())
                      throw new Error("Cannot create file in path " + fileObj.fsName);
              
              
                  fileObj.encoding = encoding;
                  fileObj.open("w");
                  fileObj.write(fileContent);
                  fileObj.close();
              
              
                  return fileObj;
              }
              
              
              function canWriteFiles() {
                  if (isSecurityPrefSet()) return true;
              
              
                  alert(script.name + " requires access to write files.\n" +
                      "Go to the \"General\" panel of the application preferences and make sure " +
                      "\"Allow Scripts to Write Files and Access Network\" is checked.");
                  app.executeCommand(2359);
              
              
                  return isSecurityPrefSet();
              
              
                  function isSecurityPrefSet() {
                      return app.preferences.getPrefAsLong(
                          "Main Pref Section",
                          "Pref_SCRIPTING_FILE_NETWORK_SECURITY"
                      ) === 1;
                  }
              }
              
              • 4. Re: Create a txt file in Extendscript
                ia89823338 Level 1

                It is working!

                thanks

                i have another question.

                i want to create an if statement that checks if the file already exists. how can i do that?

                 

                for example:

                 

                if(***the text file we have created exists***) {

                bla bla

                }

                • 5. Re: Create a txt file in Extendscript
                  Tomas Sinkunas Adobe Community Professional
                  if (File("pathToFile.extension").exists) {
                      // file exists
                  }
                  
                  • 6. Re: Create a txt file in Extendscript
                    ia89823338 Level 1

                    Not working...

                     

                    var p=app.project;
                    var projTLayersFound=[];
                    var projTextName = "this project";
                    //get project name:
                    var projName = p.file.name.replace(/%20/g, "");
                    var didNotFindOne = true;
                    ///Other
                    
                    
                    if (File(TimerFolderPath + encodeURI("/" + projName + ".txt")).exist) {
                    alert("if");
                      } else {
                       StartButton.onClick = function() { 
                        var TimerFile = new File(TimerFolderPath + encodeURI("/" + projName + ".txt")); 
                        var content = "That is a text file"; 
                         
                        if (!canWriteFiles()) return null; 
                        writeFile(TimerFile, content); 
                         
                        // File.write(content); 
                    
                    
                    
                      alert(projName);
                        alert("File created!"); 
                    }; 
                    }
                    
                    • 7. Re: Create a txt file in Extendscript
                      Tomas Sinkunas Adobe Community Professional

                      Apologies, I had a typo in code: it should have been File().exists and not File().exist

                      • 8. Re: Create a txt file in Extendscript
                        ia89823338 Level 1

                        Worked! thanks