File.exists() and accent on unix
Hi,
I made a main which test if a file exists.
I created files "toto" and "tété" on windows.
On windows the two files are seen.
I transfered them on a redhat.
The file "toto" is seen but "tété" is not.
Here is the code :
public static void main(String[] args) {
String filename = "/home/user/test/" + args[0];
System.out.println(new File(filename).exists());
}I tried to put the name of the file but it was not seen.
public static void main(String[] args) {
String filename = "/home/user/test/tété";
System.out.println(new File(filename).exists());
}If someone could help me it would be great.
Thanks.
can you try
public static void main(String[] args) {
File file = new File("/home/user/test/");
File [] files = file.listFiles();
for(File f : files){
System.out.println(f.getName());
}if this displays the both file name, then problem with your locale setting of RedHat
Similar Messages
-
Dialog prompt and check if file exists, and use the result of dialog
I have this working script and I want to change the way it behaves.
I want a dialog to come up, Do you want to skip or replace existing files.
Then the result of the dialog to be used in the reast of the script.
I've added it in the script where I need to use it. in noce big letters, hopefully its not a big job.
Many thanks
property type_list : {"8BPS"}
property extension_list : {"psd"}
script o
property theseNames : {}
end script
-- empty log file
do shell script "echo 'Files not processed in Photoshop :' > ~/Desktop/LogPhotoshopError.txt"
set noError to true
--Setup list of folders and process details of folders
set dtF to paragraphs of (do shell script "ls -F ~/Desktop | grep '/' | cut -d'/' -f1")
set tc to (count dtF)
repeat with i from 1 to tc
set folderName to item i of dtF --<: is the folder name, no need to use text item delimiters -->":"
if folderName does not start with "2_" and folderName does not start with "Hot" and folderName does not start with "Press" and folderName does not start with "Design" and folderName does not start with "Keywords" and folderName does not start with "Season" and folderName does not start with "Sue" and folderName does not start with "Design" then
set {oldTID, my text item delimiters} to {my text item delimiters, "_WK"}
set FolderEndName to last text item of folderName
set brandName to first text item of folderName
set my text item delimiters to "_PSD"
set weekNumber to first text item of FolderEndName
set my text item delimiters to oldTID
set theFolder to ("Hal 9000:Users:matthew:Desktop:" & folderName)
--set up names to destination folders and create locally based on brand name and week number
set this_local_folder to "Images:2012-2013"
set localWeekFolder to my getFolderPath("WK" & weekNumber, this_local_folder)
set localBrandFolder to my getFolderPath(brandName, localWeekFolder)
set localBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", localBrandFolder)
set localBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", localBrandFolder)
set localBrandFolder_PSD to my getFolderPath(brandName & "_WK" & weekNumber & "_PSD", localBrandFolder)
set this_Network_folder to "GEN:Brands:Zoom:Brand - Zoom:Upload Photos:2013:"
set networkWeekFolder to my getFolderPath("Week" & weekNumber, this_Network_folder)
set networkBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", networkWeekFolder)
set website_images to "GEN:Website_Images:"
--set up names to destination folders and create over Netwrok for FTP collection (based on a mounted drive)
set this_ftp_folder to "pulse:"
set ftpWeekFolder to my getFolderPath("Week" & weekNumber, this_ftp_folder)
set ftpBrandFolder to my getFolderPath(brandName, ftpWeekFolder)
set ftpBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", ftpBrandFolder)
set ftpBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", ftpBrandFolder)
--at the beginning of the script, ask whether to replace or skip existing files? to apply to all?
--use the result for the if file exists?
display dialog "Should I replace or skip exisiting files?" buttons {"Replace", "Skip (Faster)"} default button 2 with icon 1
--taking the folder identify which process it must follow.
if brandName is equal to "BH" then
try
tell application "Finder" to set o's theseNames to (name of files of alias theFolder whose file type is in the type_list or name extension is in the extension_list)
on error
set o's theseNames to {} -- no psd files or "8BPS"
end try
set numOfNames to (count o's theseNames)
repeat with j from 1 to numOfNames
set thefile to theFolder & ":" & (item j of o's theseNames)
-- B H Folder Photoshop Process
--if thefile exists in the folder localBrandFolder_PSD then do the result of dialog.
--"Skip" the file and move on to next
--If "replace" continue the rest of the script.
tell application "Adobe Photoshop CS5.1"
-- I remove the command activate, Photoshop stay in background
set ruler units of settings to pixel units
try
open (alias thefile) showing dialogs never
set origName to name of current document
set myOptions to {class:JPEG save options, quality:12}
set myPSDOptions to {class:Photoshop save options, embed color profile:true, save layers:true}
tell current document
--If the quick mask mode has been left on then delete the channel Quick Mask
if (quick mask mode) then delete channel ¬
"Quick Mask"
--If the Layer is incorrectly labeled with Original Layer it needs renaming to original Image
if (exists layer "Original Layer") then ¬
tell layer "Original Layer" to set name to "Original Image"
save in (localBrandFolder_PSD & origName) as Photoshop format with options myPSDOptions without copying
(delete layer "Original Image") flatten
resize image resolution 300 resample method none
--sharpen image
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
save in (localBrandFolder_High_Res & name) as JPEG with options myOptions without copying
--get file path, return path of the JPEG file, work with (without copying)
-- (with copying) : it return path of PSD file
set newFile to file path --( return path of type alias )
-- duplicate file using the Finder -->on duplicateFile(..)
my duplicateFile(newFile, {ftpBrandFolder_High_Res})
--Prepare for Low RES by resetting image history
set current history state to history state 3
flatten
resize image width 1348
resize image resolution 300 resample method none
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
--add save to lowResFolder with same options
save in (localBrandFolder_Low_Res & name) as JPEG with options myOptions without copying
set newFile to file path
set newFile2 to newFile as string -- for testing end of name
if newFile2 ends with "_2.jpg" or newFile2 ends with "_3.jpg" then -- exclude website_images
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res})
else
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res, website_images})
end if
close saving no
end tell
on error
set noError to false
my myLogs(thefile) -- write path to log file in Desktop
try
close saving no --if exists, close current document
end try
end try
end tell
end repeat
--End BH
-- else if and the rest of the script.....
end repeat
if not noError then do shell script "/usr/bin/open ~/Desktop/LogPhotoshopError.txt'"
on myLogs(t)
try
do shell script "echo " & (quoted form of t) & ">> ~/Desktop/LogPhotoshopError.txt'"
end try
end myLogs
on duplicateFile(tFile, foldersPath) -- tFile is an alias, foldersPath is a list of folder
tell application "Finder" to repeat with folderPath in foldersPath
with timeout of 200 seconds -- adjust it, error if the copy is longer that 200 seconds
duplicate tFile to folder folderPath with replacing
end timeout
end repeat
end duplicateFile
on getFolderPath(tName, folderPath)
tell application "Finder" to tell folder folderPath
if not (exists folder tName) then
return (make new folder at it with properties {name:tName}) as string
else
return (folder tName) as string
end if
end tell
end getFolderPath
tell application "Finder"
open "Hal 9000:Users:matthew:Desktop:LogPhotoshopError.txt"
end tellHi,
I think that's what you want.
I put the dialog in the beginning, so it does not appear to each folder, otherwise put it in the loop as it was originally.
property type_list : {"8BPS"}
property extension_list : {"psd"}
script o
property theseNames : {}
end script
-- empty log file
do shell script "echo 'Files not processed in Photoshop :' > ~/Desktop/LogPhotoshopError.txt"
set noError to true
--at the beginning of the script, ask whether to replace or skip existing files? to apply to all?
--use the result for the if file exists?
display dialog "Should I replace or skip exisiting files?" buttons {"Replace", "Skip (Faster)"} default button 2 with icon 1
set skipFiles to (button returned of the result) is "Skip (Faster)"
--Setup list of folders and process details of folders
set dtF to paragraphs of (do shell script "ls -F ~/Desktop | grep '/' | cut -d'/' -f1")
set tc to (count dtF)
repeat with i from 1 to tc
set folderName to item i of dtF --<: is the folder name, no need to use text item delimiters -->":"
if folderName does not start with "2_" and folderName does not start with "Hot" and folderName does not start with "Press" and folderName does not start with "Design" and folderName does not start with "Keywords" and folderName does not start with "Season" and folderName does not start with "Sue" and folderName does not start with "Design" then
set {oldTID, my text item delimiters} to {my text item delimiters, "_WK"}
set FolderEndName to last text item of folderName
set brandName to first text item of folderName
set my text item delimiters to "_PSD"
set weekNumber to first text item of FolderEndName
set my text item delimiters to oldTID
set theFolder to ("Hal 9000:Users:matthew:Desktop:" & folderName)
--set up names to destination folders and create locally based on brand name and week number
set this_local_folder to "Images:2012-2013"
set localWeekFolder to my getFolderPath("WK" & weekNumber, this_local_folder)
set localBrandFolder to my getFolderPath(brandName, localWeekFolder)
set localBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", localBrandFolder)
set localBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", localBrandFolder)
set localBrandFolder_PSD to my getFolderPath(brandName & "_WK" & weekNumber & "_PSD", localBrandFolder)
set this_Network_folder to "GEN:Brands:Zoom:Brand - Zoom:Upload Photos:2013:"
set networkWeekFolder to my getFolderPath("Week" & weekNumber, this_Network_folder)
set networkBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", networkWeekFolder)
set website_images to "GEN:Website_Images:"
--set up names to destination folders and create over Netwrok for FTP collection (based on a mounted drive)
set this_ftp_folder to "pulse:"
set ftpWeekFolder to my getFolderPath("Week" & weekNumber, this_ftp_folder)
set ftpBrandFolder to my getFolderPath(brandName, ftpWeekFolder)
set ftpBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", ftpBrandFolder)
set ftpBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", ftpBrandFolder)
--taking the folder identify which process it must follow.
if brandName is equal to "BH" then
try
tell application "Finder" to set o's theseNames to (name of files of alias theFolder whose file type is in the type_list or name extension is in the extension_list)
on error
set o's theseNames to {} -- no psd files or "8BPS"
end try
set numOfNames to (count o's theseNames)
repeat with j from 1 to numOfNames
set thefile to theFolder & ":" & (item j of o's theseNames)
-- B H Folder Photoshop Process
tell application "Finder" to set b to exists file (localBrandFolder_PSD & item j of o's theseNames)
if b and not skipFiles then -- file exists and "replace" (continue the rest of the script).
tell application "Adobe Photoshop CS5.1"
-- I remove the command activate, Photoshop stay in background
set ruler units of settings to pixel units
try
open (alias thefile) showing dialogs never
set origName to name of current document
set myOptions to {class:JPEG save options, quality:12}
set myPSDOptions to {class:Photoshop save options, embed color profile:true, save layers:true}
tell current document
--If the quick mask mode has been left on then delete the channel Quick Mask
if (quick mask mode) then delete channel ¬
"Quick Mask"
--If the Layer is incorrectly labeled with Original Layer it needs renaming to original Image
if (exists layer "Original Layer") then ¬
tell layer "Original Layer" to set name to "Original Image"
save in (localBrandFolder_PSD & origName) as Photoshop format with options myPSDOptions without copying
(delete layer "Original Image") flatten
resize image resolution 300 resample method none
--sharpen image
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
save in (localBrandFolder_High_Res & name) as JPEG with options myOptions without copying
--get file path, return path of the JPEG file, work with (without copying)
-- (with copying) : it return path of PSD file
set newFile to file path --( return path of type alias )
-- duplicate file using the Finder -->on duplicateFile(..)
my duplicateFile(newFile, {ftpBrandFolder_High_Res})
--Prepare for Low RES by resetting image history
set current history state to history state 3
flatten
resize image width 1348
resize image resolution 300 resample method none
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
--add save to lowResFolder with same options
save in (localBrandFolder_Low_Res & name) as JPEG with options myOptions without copying
set newFile to file path
set newFile2 to newFile as string -- for testing end of name
if newFile2 ends with "_2.jpg" or newFile2 ends with "_3.jpg" then -- exclude website_images
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res})
else
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res, website_images})
end if
close saving no
end tell
on error
set noError to false
my myLogs(thefile) -- write path to log file in Desktop
try
close saving no --if exists, close current document
end try
end try
end tell
end if -- else "Skip" the file and move on to next
end repeat
--End BH
end if
end if
end repeat
if not noError then do shell script "/usr/bin/open ~/Desktop/LogPhotoshopError.txt'"
on myLogs(t)
try
do shell script "echo " & (quoted form of t) & ">> ~/Desktop/LogPhotoshopError.txt'"
end try
end myLogs
on duplicateFile(tFile, foldersPath) -- tFile is an alias, foldersPath is a list of folder
tell application "Finder" to repeat with folderPath in foldersPath
with timeout of 200 seconds -- adjust it, error if the copy is longer that 200 seconds
duplicate tFile to folder folderPath with replacing
end timeout
end repeat
end duplicateFile
on getFolderPath(tName, folderPath)
tell application "Finder" to tell folder folderPath
if not (exists folder tName) then
return (make new folder at it with properties {name:tName}) as string
else
return (folder tName) as string
end if
end tell
end getFolderPath
tell application "Finder"
open "Hal 9000:Users:matthew:Desktop:LogPhotoshopError.txt"
end tell -
Iam trying to load illustator in my PC i get following error while loading Application CD 2
Adobe Illustrator CS4
Error:
Error 1603. Error 1305.Error reading from file C:\Program Files\Adobe\Adobe Illustrator CS4\Support Files\Required\Fonts\AdobeSongStd-Light.otf. Verify that the file exists and that you can access it.
AdobeColorCommonSetRGB
Error:
Error 2.
My serial no. [Removed by moderator]Download a copy an installer for CS4 from the links on this page:
Other downloads -
Utl_file.open_file question to check if a file exists and is not empty
Hello,
I am trying to write a code where in 3 seperate files are created based on some parameter condition for the extract call.
Say the parameters are NULL, 'A' and 'B'.
When Null condition is passed to the extract call then it should create file A and B if records are found. If not it should create empty files.
It is possible that the parameter to the extract is just 'A' then it would create A with say non zero file and B with zero file.
Now when the extract is called with 'B' parameter and if the file A already exists and is not empty then I should not touch/overwrite it with empty records.
Is there any simple way that I can do this to check if a file exists and is non empty?
I am using
open_file
( gv_utl_file_path
,lv_file_name
,lv_file_handle
Please help.
Thanks@OP : No Need to open
SQL> declare
2 lb_file_exist boolean;
3 ln_size number;
4 ln_block_size number;
5 begin
6 sys.utl_file.fgetattr('TEST_DIR','a.txt',lb_file_exist,ln_size,ln_block_size);
7 if lb_file_exist then
8 dbms_output.put_line('a Exists');
9 dbms_output.put_line(to_char(ln_size));
10 else
11 dbms_output.put_line('a Not Exists');
12 end if;
13 sys.utl_file.fgetattr('TEST_DIR','b.txt',lb_file_exist,ln_size,ln_block_size);
14 if lb_file_exist then
15 dbms_output.put_line('b Exists');
16 dbms_output.put_line(to_char(ln_size));
17 else
18 dbms_output.put_line('b Not Exists');
19 end if;
20 sys.utl_file.fgetattr('TEST_DIR','c.txt',lb_file_exist,ln_size,ln_block_size);
21 if lb_file_exist then
22 dbms_output.put_line('c Exists');
23 dbms_output.put_line(to_char(ln_size));
24 else
25 dbms_output.put_line('c Not Exists');
26 end if;
27 end;
28 /
a Exists
0
b Exists
3
c Not Exists
PL/SQL procedure successfully completed.Edited by: jeneesh on Mar 30, 2012 1:21 AM -
How to check if a specific file exist and which exit code to use ?
Hi, First I'm not a scripting guy and I know almost nothing about VB scripting.
I have a deployment of 6 tasks and I want to make sure that step # 2 will not be process if it failed in step #1, and so on for the 6 task.
To do this, i have to run a vb script before installation or uninstalltion on each steps
I'm trying to use a script (not from me) that i have modified for pre-uninstallation of software and also post-installation of the software.
Pre-uninstallation: The script will look if the specified "exe" exist on the server and if so, than it will run the msiuninstall "application_name".
If the uninstallation is successful, the post-installation script will check if the "exe" file exist again on the server, and it shouldn't find it (because it was deleted from the uninstallation), than it will return an exit code of successful
to run the next process.
Here an example:
Step 1: Uninstall "Software#1" with msiuninstall Software#1.exe command
Step 2: Uninstall "Software#2" with msiuninstall Software#2.exe command
Step 3: Install "Software #3"with an .exe extension
Step 4: Re install "Software #2" with an .msi extension
Step 5: Re install "Software #1" with a .msi extension.
Step 6: Send email to confirm the deployment is successful
So i need to validate that step #2 will not process step #3 if it failled on # 2. It need to validate if the file exist before and after.
At the end, Step 6 should send an email to confirm that the 6 steps of the deployment was completed without errors.
Any idea how to do it ?
Many many thanks for all the help !
A desperate guy :)
This is what i have
'This script will look if an .exe file exist for a specific application.
'=============================================================================================
path = WScript.Arguments.Item(0)
set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(C:\Inetpub\wwwroot\Enterprise\EnterpriseWS\web.config) = true then
exitCode = 0
else
exitCode = 1
End If
Wscript.Quit exitCodeSince you are not a scripting guy here is a very good place to start:
http://technet.microsoft.com/en-us/scriptcenter/dd793612.aspx
¯\_(ツ)_/¯ -
Applet checking if file exist and if no copy this file
Halo, everyone,
I'm new to java and I need an applet which is able to check if certain file exist on user's hard drive and if not to copy it.
I read that this is possible in certain circumstances, that applet has to be trustes and so on, but that's not my problem. My request is the applet code that checks of existance of certain file.
I'll lbe very thankful if someone could give me such applet or point me to place where I can see steps to creare it myself.
Thank you in advace onse again.Thnaks a lot for your answers. I really ppreciate!
How could I make the applet using such permissions i
how than it would work?I don't understand, in your first post you said "I read that this is possible in certain circumstances, that applet has to be trustes and so on, but that's not my problem. ". I assumed from this that someone else was dealing with the security aspects.
A starting point to signing Applets is - http://java.sun.com/developer/technicalArticles/Security/Signed/ but Google willl find you a whole load of information. -
System.IO.File.Exists And set IIS
Hi all.
I want Check file exists in SharePoint webpart.
So I found class the System.IO.File.Exists.
---source---
string path = @"\\nar-cla500s3\memo\test\skill\print-001.xls"; <-- return only false
try
if (System.IO.File.Exists(path))
Label.Text = "true";
else
Label.Text = "false";
catch { }
----source-----
If i wirte LocalPath(@"C:\memo\test\skill\print-001.xls), I Can get True.
My all APP's processID is win\lx13040020, And win\lx13040020 can access <\\nar-cla500s3\memo\test\skill\print-001.xls>
But I got only false...
is this double hope problem? I want check exists from file server.
I need your help, Thank you.Hi,
I will not recommend to change the settings from IIS. This fixes your problem but might create more. Setting the value to 'disable' means impersonation not in action and all resources will be accessed using app pool account instead of currently logged in
user. If you would run your code inside SPSecurity.RunWithElevatedPrivil... then you could bypass the impersonation without changing IIS settings. Now disabling the impersonation you add the risk of security breach as all users can access what app pool can
access. For SharePoint site, I don't think you should change settings from IIS.
Some useful links:
http://stackoverflow.com/questions/1061857/sharepoint-and-identity-impersonate-false
http://extreme-sharepoint.com/2012/05/30/impersonation-elevation-of-privileges/
Thanks,
Sohel Rana
http://ranaictiu-technicalblog.blogspot.com -
Getting FileNotFoundException, but the file exists and is read/write
So I'm trying to input a file and i get this exception, but the file does exist and the directory is correct.
import java.util.Scanner;
import java.io.File;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
public class Assignment1 {
public static void main(String[] args){
File file = new File("C://Users//The RTV//Documents//Procject1//src//test.txt");
if(file.exists()){
System.out.println("*");
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
}when I remove the BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); The star prints, so the file does exist, but I keep getting that exception when I put the code back. I also get that exception when I remove the File file and the if statement and just have the buffered input. Can anyone explain to me why this is happeneing?Procject1Typo?Less likely if file.exists() passes.
what about "file.canRead()"? You should also try this, could be a permissions problem.My best guess, despite the thread title. From the Javadoc for FileInputStream(File) :
Throws:
FileNotFoundException - if the file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.
That last part seems kind of misleading.
Edit:
By the way are you logged on as "The RTV" when you test this?
Edited by: endasil on 10-Sep-2009 4:53 PM -
File exists and dosn't exist on the same time ???
Hello there
So here is my Problem:
I want to read a file from disk and for that reason I created a buffered reader, with the reading there is no problem. The problem is the way I access this file. I set the property user.dir to the directory of the file (this is necessery for keeping my application dynamic) (it isn't part of the classpath). Then I give over to the method that reads it the name of the file as a string. There I create a new File object with this code:
File diskFile = new File ( theNameAsString );
(The diskFile is later given to the FileReader..)
Now when I let print out the absolutePath the path is correct. But if I try:
diskFile.exists( );
the result is "false"
So I tried it an other way by instanciating the diskFile as follows:
diskFile = new File ( "fullQualifiedPath" );
The result of printing out the diskFile.getAbsolutePath( ); shows exactly the same as before, but if I try:
diskFile.exists( );
the result is "true"
and this time there is no FileNotFoundException
So what is wrong with the first way I try to access the file?
I hope you all can understand what I try to explain...
Thank you, AlexI'm thinking you may have a file name problem of some kind. Try this,
File diskFile = new File ( theNameAsString );
String fullName = diskFile.getAbsolutePath();
File anotherLookAtTheSameFile = new File(fullName);
Then try to see if anotherLookAtTheSameFile.exists() is true. I suspect it will not be. If it is, then it is likely that the "user.dir" property is changing between the time you instantiated 'diskFile' and the time you go to actually read the file. If it is, you could use 'anotherLookAtTheSameFile' instead of diskFile.
Hope this helps. -
Operations on file: Deleting and get size
Hi,
I'm triying to delete a file. I use the following code:
File found = new File (directoryOutputFileWriter+f);
boolean deleted = found.delete();But when I execute it the boolean deleted it's always false and the file is not deleted.
Then I try to get the size of another file in this way:
File produced = new File(directoryOutputFileWriter+file[0]);
long size = produced.length();but I receive a null value (the file exists and its dimension is over 0 of course).
Why?
How can I solve?
Thanks, bye bye.Hello,
in my experience the absolute #1 source of astonishment with file operations is loose manual checking (mistyping or misreading).
I suggest you use those traces:
File found = new File (directoryOutputFileWriter+f);
System.out.println("File path is"+found.getAbsolutePath());
System.out.println("Does this file exists? "+found.exists());
System.out.println("Is this file really a file? "+found.isFile()); // You may not be able to delete a directory on all platforms
System.out.println("Is this file deleted now? "+found.delete());#2 is developers not reading the javadoc (that states that delete may not succeed), but I acknowledge you have read it, as you're investigating why it hasn't, and not complaining that it has.
#3 is people overlooking OS-specific file management. E.g. Unix-Linux-Window file permissions management all may let you read a file but not delete it (with the unices having a richer set of combinations than windows). The rules for directory deletion are different between Unices and Windows. Etc...
Edited by: jduprez on Jul 5, 2010 9:44 AM
@Mel: I sometimes wish I was that much connected to my wife's mind ;o)
@Joachim: nice catch! Loose manual checking indeed (both on my part and on OP's)... -
File.exists() returs false even the file is present in the specified path
Hi,
When i try to run the following program which checks whether the file exists in the given path or not
public class FileCheck {
public static void main(String[] a){
String str = a[0];
File f = new File(str);
if(f.exists())
System.out.println("File Exists ");
else
System.out.println("File does not Exists ");
So on solaris 10(korean) we have file named in korean language under "usr" directory. When i try to run the above program on solaris 10(Korean) using the default jre (1.5)with the parameter "/usr/file name in korean language" .The output of the program is "File Exists"
And when i run the same class file using the jre (1.6) which is installed in our application which is an english version with the same parameter ""/usr/file name in korean language"
The output of the program is "File does not exists".
And this problem is only with the files which contain the name in korean language.
So do we need to set any properties for the jre in our application to work for files which are named in korean language. Any help will be highly appreciated.
Thanks,
GPK
Edited by: gpk_04 on Nov 11, 2008 1:46 PM
Edited by: gpk_04 on Nov 11, 2008 1:57 PMMy guess is that Java 5 and 6 are picking up the file system encoding differently. As a consequence, the JVM is either:
1. reading and converting your command line argument incorrectly, or
2. reading and converting the file name from the file system incorrectly.
Write a quicky, short app that prints out the file encoding of your host. Run this under 5 and then 6. Do you see different outputs? -
File Adapter - Check file exist before performing read
Is there a feature in the file adapter or invoke activity for SOA 11.1.1.5 that performs a check to see if a specific file exists before it performs a read function? If file does not exist then move onto to next step, if it does then read it.
I am trying to do this in 1 step instead of performing a listing of the directory first before perfomring the read.Hi,
When you read a file, using the synchronous read file, you have to point to a file (file name, directory...). That way, when you are executing the invoke activity, followed by a FileAdapter, it's either the file exists, and you read it, or it's not exist and you don't read it.
Arik -
Do not continue until a file exists in powershell
Hi,
I was wondering if there is a method in powershell to get it to
continually check whether a file exists and do not progress until it finds it.
i.e
DO WHILE
c:\flag.txt NOT EXISTS
Wait 10 seconds
END
<Next command >
So that the <next Command> section is only executed once it finds the file c:\flag.txt
Is this possible?
Thanks,
ZoeI doubt that it would have been very helpful anyway. The requirement was
"check whether a file exists and
do not progress until it finds it"
so blocking is exactly what's called for. Putting it into a background job is probably just going to trade checking of the file status for checking on the job status.
[string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "
My post was very helpful, indeed.
Blocking any instance of an application (PowerShell in this case) is almost always a very bad decision (*) because it blocks the UI.
Do you understand that a UI, when blocked cannot process any other command from user, just because the UI is blocked?
( Alright, Ctrl+Break can stop the process, and the terminate the PowerShell session too! )
Your argumentation is proper of a non-programmer.
Imagine the situation: you, the user, has a powerful computer at your finger tips, with last generation of MS server, which is running your smart PS script that's blocking (how many hours for?) your PS instance. In this case, you don't need a powerful computer,
what you need is a better PowerShell scripter.
Haven't heard of Star-Job?
Spend sometime reading about it, it's worth the reading.
( Alright, your mvp friend seems never heard of it, when I look at the crap code he did using Star-Job in another thread. )
The solution is very simple: Start a job to wait for whatever have to be waited; then, keep using the PS instance
normally, and check once or another if the job is completed (or use another sync mechanism).
This is smart!
Blocking the UI is since ever, not smart.
(*) except very specific situations; fortunately, current computers are preemptively multitask.
I understand it blocks the UI, but we don't have any indication in the question that this is going to be used in an interactive session or that the OP doesn't know about background jobs. If it's going to have to monitor/wait for an extended period
of time it could well be being implemented as a scheduled task or job, or even as a persistent job. No matter what the session environment is, some solution for implementing that blocking behavior will be needed to satisfy the stated requirements, and
the posted solution will do that.
The assumption is that the OP isn't smart enough to figure out or experienced enough to know that what they're asking for will block their interactive session while it waits for the file. I don't see anything in the question to warrant that assumption.
If it's going to have to wait an arbitrarily long time, a permanent registered event might be a better solution than the time loop.
[string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " " -
Crearte folders based on file name and then do action
I've written this in the best possible step to step way as possible buti've no idea how to pull it altogether as a script. Hopefully its all there, just let me know if its still not clear, I would love the help if anyone can help sort this out for me.
Many Thanks
Matt
-there is a folder on the desktop called Season_SSxx_PSD where xx = a number
--This folder contains a quantity of PSD files that need to be processed the same but placed in different locations.
set theDesktopFolder to "Hal 9000:Users:matthew:Desktop"
set folderName to (folder of theDesktopFolder whose name starts with "SE")
--From the folderName
--set the seasonNumber to the item that follows Season_ and is before _PSD (the Season number should be SS13 but can change)
--Look at all files of folderName
--Files can be named like the following.
-- SE_BH70NW01234BM4BM
-- SE_BU40NW01234BM4BM
-- SE_ES20NW01234BM4BM
-- SE_DV25NW01234BM4BM
-- SE_DJ30NW01234BM4BM
-- SE_RA30NW01234BM4BM
-- SE_FR10NW01234BM4BM
-- SE_TM15NW01234BM4BM
-- SE_WA35NW01234BM4BM
-- Now set the brandIdentifier to Item that follows SE_ of the file names of the folderName
--Convert brandIdentifier to realName
--BH = BigandHuge
--BU = Buttons etc..
-- Now create the folders
--set up names to destination folders and create over Network for FTP collection (based on a mounted drive)
--set this_ftp_folder to "Impulse:"
--set ftpSeasonNumberFolder to my getFolderPath(seasonNumber, this_ftp_folder)
--Or Impulse:SS13:
--set ftpBrandFolder to my getFolderPath(realName, ftpSeasonNumberFolder)
--Or Impulse:SS13:BigandHuge:
--set ftpBrandFolder_High_Res to my getFolderPath(realName & seasonNumber & "_HR", ftpBrandFolder)
--Or Impulse:SS13:BigandHuge:BigandHuge_SS13_HR:
--set ftpBrandFolder_High_PNG to my getFolderPath("_PNG", ftpBrandFolder_High_Res)
--Or Impulse:SS13:BigandHuge:BigandHuge_SS13_HR:PNG:
--then the following
--Impulse:SS13:BigandHuge:BigandHuge_SS13_HR:JPG:
--Impulse:SS13:BigandHuge:BigandHuge_SS13_LR:PNG:
--Impulse:SS13:BigandHuge:BigandHuge_SS13_LR:JPG:
--Its these last 4 that will be used later.
--then all files begining with BH in the folderName do this photoshop action and save in the folders created from --above, then move on to the next file begining with BU create the relevant folders and then do the action as --before and so on.Cool that sorted the folder creation out without an issue, many thanks.
Just struggling to pin the photoshop part in.
property type_list : {"8BPS"}
property extension_list : {"psd"}
script o
property theseNames : {}
end script
-- empty log file
do shell script "echo 'Files not processed in Photoshop :' > ~/Desktop/LogPhotoshopError.txt"
set noError to true
--at the beginning of the script, ask whether to replace or skip existing files? to apply to all?
--use the result for the if file exists?
display dialog "Should I replace or skip exisiting files?" buttons {"Replace", "Skip (Faster)"} default button 2 with icon 1
set skipFiles to (button returned of the result) is "Skip (Faster)"
set theDesktopFolder to "Hal 9000:Users:matthew:Desktop"
tell application "Finder" to set seFolder to (folders of folder theDesktopFolder whose name starts with "SE")
if seFolder is not {} then
set seFolder to item 1 of seFolder
tell application "Finder" to set tName to name of seFolder
set seasonNumber to my getText(tName) -- get Season Number
if seasonNumber is not "" then
set list1 to {"BH", "BU", "ES", "DV", "DJ", "RA", "FR", "TM", "WA"}
set list2 to {"BHS", "Burtons", "DaisyAndEve", "Diva", "DorothyPerkins", "DorothyPerkins", "Freedom", "TopMan", "Wallis"} -- you must complete this list ***
set tc to count list2
repeat with i from 1 to tc
set brandIdentifier1 to item i of list1
set brandIdentifier to item i of list2 -- the real name
--first item = all files begining with BH
tell application "Finder" to set theseFiles to (files of seFolder whose name starts with "SE_" & brandIdentifier1) as alias list
if theseFiles is not {} then
--local Folders
set this_local_folder to "Images:2012-2013"
set localSeasonNumberFolder to my getFolderPath("SS" & seasonNumber, this_local_folder)
set localSeasonFolder to my getFolderPath(brandIdentifier, localSeasonNumberFolder)
set localSeasondFolder_PSD to my getFolderPath("PSD", localSeasonFolder)
-- *** Now create the folders ***
set this_ftp_folder to "Impulse:"
set ftpSeasonNumberFolder to my getFolderPath("SS" & seasonNumber, this_ftp_folder)
set ftpBrandFolder to my getFolderPath(brandIdentifier, ftpSeasonNumberFolder)
set ftpBrandFolder_High_Res to my getFolderPath(brandIdentifier & "_SS" & seasonNumber & "_HR", ftpBrandFolder)
set ftpBrandFolder_Low_Res to my getFolderPath(brandIdentifier & "_SS" & seasonNumber & "_LR", ftpBrandFolder)
--Use the folders below within Photoshop
set ftpBrandFolder_High_PNG to my getFolderPath("PNG", ftpBrandFolder_High_Res)
set ftpBrandFolder_Low_PNG to my getFolderPath("PNG", ftpBrandFolder_Low_Res)
set ftpBrandFolder_High_JPG to my getFolderPath("JPG", ftpBrandFolder_High_Res)
set ftpBrandFolder_Low_JPG to my getFolderPath("JPG", ftpBrandFolder_Low_Res)
--- *** end create the folders ***
repeat with i in theseFiles
set tFile to i as string
--taking the folder identify which process it must follow.
if brandIdentifier is equal to "BHS" then
try
tell application "Finder" to set o's theseNames to (name of files of alias theFolder whose file type is in the type_list or name extension is in the extension_list)
on error
set o's theseNames to {} -- no psd files or "8BPS"
end try
set numOfNames to (count o's theseNames)
repeat with j from 1 to numOfNames
set thefile to theFolder & ":" & (item j of o's theseNames)
-- B H S Folder Photoshop Process
set thisName to (item j of o's theseNames)
tell application "Finder"
set t_ext to name extension of file thefile
if t_ext is not "" then set thisName to text 1 thru -((count t_ext) + 2) of thisName
set b to exists file (localSeasondFolder_PSD & thisName & ".psd")
end tell
if not b or (b and not skipFiles) then -- not exists file or file exists and "replace" (continue the rest of the script).
tell application "Adobe Photoshop CS5.1"
-- I remove the command activate, Photoshop stay in background
set ruler units of settings to pixel units
try
open (alias thefile) showing dialogs never
set origName to name of current document
set myOptions to {class:JPEG save options, quality:12}
set myPSDOptions to {class:Photoshop save options, embed color profile:true, save layers:true}
tell current document
--If the quick mask mode has been left on then delete the channel Quick Mask
if (quick mask mode) then delete channel ¬
"Quick Mask"
--If the Layer is incorrectly labeled with Original Layer it needs renaming to original Image
if (exists layer "Original Layer") then ¬
tell layer "Original Layer" to set name to "Original Image"
save in (localSeasondFolder_PSD & origName) as Photoshop format with options myPSDOptions without copying
(delete layer "Original Image") flatten
resize image resolution 300 resample method none
--sharpen image
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
save in (ftpBrandFolder_High_JPG & name) as JPEG with options myOptions without copying
--Prepare for Low RES by resetting image history
set current history state to history state 3
flatten
resize image width 1348
resize image resolution 300 resample method none
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
--add save to lowResFolder with same options
save in (ftpBrandFolder_Low_JPG & name) as JPEG with options myOptions without copying
close saving no
end tell
on error
set noError to false
my myLogs(thefile) -- write path to log file in Desktop
try
close saving no --if exists, close current document
end try
end try
end tell
end if
end repeat
--End BHS
--taking the folder identify which process it must follow. W A L L I S
else if brandIdentifier is equal to "Wallis" then
try
tell application "Finder" to set o's theseNames to (name of files of alias theFolder whose file type is in the type_list or name extension is in the extension_list)
on error
set o's theseNames to {} -- no psd files or "8BPS"
end try
set numOfNames to (count o's theseNames)
repeat with j from 1 to numOfNames
set thefile to theFolder & ":" & (item j of o's theseNames)
-- W A L L I S Folder Photoshop Process
set thisName to (item j of o's theseNames)
tell application "Finder"
set t_ext to name extension of file thefile
if t_ext is not "" then set thisName to text 1 thru -((count t_ext) + 2) of thisName
set b to exists file (localSeasondFolder_PSD & thisName & ".psd")
end tell
if not b or (b and not skipFiles) then -- not exists file or file exists and "replace" (continue the rest of the script).
tell application "Adobe Photoshop CS5.1"
-- I remove the command activate, Photoshop stay in background
set ruler units of settings to pixel units
try
open (alias thefile) showing dialogs never
set origName to name of current document
set myOptions to {class:JPEG save options, quality:12}
set myPSDOptions to {class:Photoshop save options, embed color profile:true, save layers:true}
tell current document
--If the quick mask mode has been left on then delete the channel Quick Mask
if (quick mask mode) then delete channel ¬
"Quick Mask"
--If the Layer is incorrectly labeled with Original Layer it needs renaming to original Image
if (exists layer "Original Layer") then ¬
tell layer "Original Layer" to set name to "Original Image"
save in (localSeasondFolder_PSD & origName) as Photoshop format with options myPSDOptions without copying
(delete layer "Original Image") flatten
resize image resolution 300 resample method none
--sharpen image
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
save in (ftpBrandFolder_High_Res & name) as JPEG with options myOptions without copying
--Prepare for Low RES by resetting image history
set current history state to history state 3
flatten
resize image width 1020
resize image resolution 300 resample method none
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
--add save to lowResFolder with same options
save in (networkBrandFolder_Low_Res & name) as JPEG with options myOptions without copying
close saving no
end tell
on error
set noError to false
my myLogs(thefile) -- write path to log file in Desktop
try
close saving no --if exists, close current document
end try
end try
end tell
end if
end repeat
--End W A L L
end if
end if
if not noError then do shell script "/usr/bin/open ~/Desktop/LogPhotoshopError.txt'"
on myLogs(t)
try
do shell script "echo " & (quoted form of t) & ">> ~/Desktop/LogPhotoshopError.txt'"
end try
end myLogs
on getText(t)
set {oTID, text item delimiters} to {text item delimiters, "_"}
try
set r to ""
set r to text -2 thru -1 of (text item -2 of t)
end try
set text item delimiters to oTID
return r
end getText
on getFolderPath(tName, folderPath)
tell application "Finder" to tell folder folderPath
if not (exists folder tName) then
return (make new folder at it with properties {name:tName}) as string
else
return (folder tName) as string
end if
end tell
end getFolderPath -
Spry:if image file exists?
Hi,
is there a easy way to test if an image file exists on the server? I try to generate dynamic html listing names and pictures. The names (and other info) arein a xml file. For some, images exist on the server as name.jpg file. I'd like to check with spry if name.jpg file exist and if take it as picture, if not use a general placeholder.
thanks for any hlep,
thorstenHi Ben,
thanks for your time and effort helping. I'd really appreciate this.
How is the XML-file compiled eg from a database or coded by hand
I use both on my web site and It would be nice if the solution would work both
- with a query send to our institutes phone book. Results are in xml format
- and a local xml file, that has been edited by hand.
Is there a serverside program you use eg PHP, ASP, Coldfusion
I can use PHP or javascript, but php does not work in combination with server-side-includes that we use on our apache web server. I'd prefer javascript, because those script run on any page, even if SSI is used.
Have you considered using an HTML table to retrieve the info instead of using XML
No yet, because also the local xml file is basically identical to the query output. I just add some fields manually to the local xml file. (So I could add a "picture" entry, but this solution would not work with the xml online query).
Is there anywhere where I can view your code
The page is already online, the goal is to eliminate the non-existing picture links. This page queries a local xml file
http://lch.web.psi.ch/webcontent/EduTeach/students.html
I did a similiar thing using php on other pages of the site. This page queries a phonebook database using the xml output. It is written in php, which does not work with our server when SSI is used. The workaround is to include a html page generated by a php scirpt using iframe. I'd really would love to replace this php script by a spry/javascirpt combination.
http://lch.web.psi.ch/webcontent/research/surface/Gruppe.html
I attach the html file and php file for the two pages. Thanks, best, t.
Maybe you are looking for
-
Nokia OVI Suite and Nokia Care Support
Today I called Nokia Support, because I could not download maps with map loader. The guy asked if the ovi suite is installed. I told him, that the Ovi suite keeps on crashing on start-up on my machine, and that all other software is running fine, e.g
-
How do I install the classic environment?
I have an iMac slot loader that I got for my daughter. I have a retail version of OSX 10.2 installed on it and working fine. I also have alot of games but they require the Classic Environment. I have forgotten how to install the Classic environment!
-
MSS - reporting - selection criteria - translation
Hi The selection criteria iView ( com.sap.pct.hcm.rpt_objectselection ) has two drop down lists fields: 1) reporting period 2) limitation (all employees, directly subordinate employees etc) I need to translate them to french. If I inlcude the iVie
-
Premiere pro CS4 import problem
when I try to import video files from a Creative Vado HD, the video is frozen in the source monitor and in the timeline. Only the audio plays fine. Imported files are 720p, h-264 avi. 30fps. Does anyone know what's happening?
-
Please i want to call a HTTPService to populate markers from external .xml file instead of populating it directly in the main.mxml. Thank you! [Embed(source="image/cinemaMarker.png")] protected var MarkerImage:Class; private var srcXML:XML = <